Перебираем натуральные числа 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);