1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.4 Упр.11 Задание 3 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 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$$.



Общая оценка
4 / 5
Другие учебники
Другие предметы