Почему программа на C бесконечно грузится?

Задание: Некоторое натуральное число заканчивается на двойку. Если ее переставить на первое место, то число удвоится. Какое минимальное число было изначально?

Мой код:

#include <stdio.h>
#include <math.h>

int main() {
  int a = 12;
  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 (2 * r == a) {
        printf("r = %d\n", r);
        printf("a = %d\n\n", a);
        proverka = 1;
      }
      a = r;
    }
    a += 10;

    if (proverka == 1) {
      break;
    }
  }
}

Но при запуске начинается бесконечная загрузка и я так подозреваю, что ответа не будет. В чём ошибка?


Ответы (0 шт):