Задание: Некоторое натуральное число заканчивается на двойку. Если ее переставить на первое место, то число удвоится. Какое минимальное число было изначально?
#include <stdio.h>
int main() {
int a = 1;
int proverka = 0;
while (1)
{
if (a % 10 == 2) {
int r = a; //Сохраняем начально значение a
int x = a;
int count = 0;
while (x > 0) {
x /= 10;
count += 1; //Считаем, сколько у числа разрядов
}
a /= 10;
a = a + 2 * pow(10, (count - 1));
if (a / r == 2) {
printf("r = %d\n", r);
printf("a = %d\n\n", a);
proverka = 1;
}
a = r;
}
a++;
if (proverka == 1) {
break;
}
}
}
Ответ, который выдаёт программа:
r = 102
a = 210
Ответ, очевидно, неверный, ведь 102 * 2 != 210.
Я достаточно долго над ней просидел, но всё не могу понять в чём ошибка в коде. Буду признателен, если поможете