Совершенные числа
Число совершенно, если оно равно сумме всех своих делителей, кроме самого себя. Пример: 6 = 1 + 2 + 3. Найдите все совершенные числа от 1 до 10000 и выведите их на экран.
Подсказка: необходимо найти все делители от 1 до тестируемого числа. Делителем числа называется число, которое делит данное без остатка (a mod b = 0
).
Алгоритм решения задачи:
- Каждое число от 1 до 1000 поочередно делить на все целые числа от 1 до этого числа. На самом деле достаточно до половины заданного числа.
- Найти сумму всех делителей и сравнить с самим числом. Если сумма и число равны, то последнее является совершенным.
Программа на языке Паскаль:
const N = 10000;
var
i, j, sum: integer;
begin
for i := 2 to N do begin
sum := 0;
for j := 1 to i div 2 do begin
if i mod j = 0 then
sum := sum + j;
end;
if sum = i then
writeln(i, ' - perfect!');
end;
end.
Результат выполнения программы:
6 - perfect!
28 - perfect!
496 - perfect!
8128 - perfect!