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