Работа 3.4 Упр.11 Задание 3 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 11. Натуральное число М называется совершенным, если оно равно сумме всех своих делителей, включая 1, но исключая себя. Напечатать все совершенные числа, меньшие заданного числа N. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-4/zad3/11 98
Нужно вывести все совершенные числа, меньшие $$N$$. Для этого удобно проверить каждое число $$M$$ с помощью функции, которая находит сумму его делителей.
Число считается совершенным, если сумма всех его делителей, кроме самого числа, равна ему самому. Например, для $$6$$ делители: $$1, 2, 3$$, и $$1+2+3=6$$.
В функции перебираем делители только до $$\sqrt{M}$$, потому что делители идут парами. Если $$i$$ делит $$M$$, то в сумму добавляются и $$i$$, и $$M / i$$. Чтобы не учитывать само число дважды, в конце проверяем равенство суммы и $$M$$.
VAR N, i: integer;
FUNCTION SOVER(M: integer): boolean;
VAR i, S: integer;
BEGIN
S := 0;
for i := 1 to trunc(sqrt(M)) + 1 do
if M mod i = 0 then S := S + i;
SOVER := S = M;
END;
BEGIN
readln(N);
for i := 1 to N do
if SOVER(i) then write(i, ‘ ‘);
END.
Программа последовательно проверяет все числа от $$1$$ до $$N$$ и печатает те, для которых функция возвращает true.
Ответ
Программа выводит все совершенные числа, меньшие заданного $$N$$.