Нахождение наименьшего числа с количеством делителей, равным 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
возвращает ноль, заканчивая выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д