Нахождение наименьшего числа с количеством делителей, равным n - C (СИ)
Формулировка задачи:
Здравствуйте, уважаемые.
Помогите написать программку, пожалуйста.
задание на экзамен. нужно очень очень срочно.
Задание:
Напишите функцию, которая будет находить наименьшее число с количеством делителей n, к примеру n=6, то наименьшее число будет 12, которое имеет 6 делителей : 1,2,3,4,6,12.
помогите, пожалуйста. просьба толко как можно проще, чтоб смог объяснить ее.
Спасибо огромное!
Решение задачи: «Нахождение наименьшего числа с количеством делителей, равным n»
textual
Листинг программы
#include <stdio.h> int func(int value) { int i, j, counter; for ( i = value, counter = 0; i < 2000000000; i++ ) { for ( j = 1; j <= i; j++ ) { if ( i % j == 0 ) { counter += 1; } if ( counter == value ) { return i; } } counter = 0; } return 0; } int main() { int n; scanf("%d", &n); printf("%d\n", func(n)); return 0; }
Объяснение кода листинга программы
В этом коде реализована функция func
, которая должна найти наименьшее число с количеством делителей, равным n
.
Алгоритм следующий:
- Переменная
i
инициализируется значениемvalue
. - Переменная
counter
инициализируется нулем. - Два вложенных цикла перебирают все числа от
i
до 2000000000 (включительно). - Для каждого числа
j
проверяется, делится лиi
наj
без остатка. Если да, то переменнаяcounter
увеличивается на единицу. - Если количество делителей равно
n
, то текущее числоi
возвращается из функции. - После каждой итерации внешнего цикла переменная
counter
сбрасывается в ноль. - В функции
main
считывается числоn
с помощью функцииscanf
. - Результат работы функции
func
выводится на экран с помощью функцииprintf
. - Функция
main
возвращает ноль, заканчивая выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д