Дільники#3259

Дільники (Розбір)

Перебираємо натуральні числа x = 1, 2, 3, ... . Для кожного рахуємо кількість його дільників. Як тільки знайдено число, у якого кількість дільників дорівнює , виводимо його і завершуємо роботу.

Таке рішення вкладається в обмеження за часом, оскільки значення не велике. Наприклад, для n = 16 відповідь дорівнює .

Реалізація алгоритму

Функція Divisors підраховує кількість дільників числа за допомогою простого перебору всіх можливих дільників від до .

int Divisors(int n)
{
  int res = 0, i;
  for (i = 1; i <= n; i++)
    if (n % i == 0) res++;
  return res;
}

Основна частина програми. Читаємо вхідне значення — потрібна кількість дільників.

scanf("%d",&n);

Послідовно перебираємо натуральні числа i = 1, 2, 3, ... і для кожного з них обчислюємо кількість дільників. Як тільки знаходиться число , у якого рівно дільників, цикл припиняється.

for (i = 1; ; i++)
{
  d = Divisors(i);
  if (d == n) break;
}

Виводимо відповідь.

printf("%d\n",i);