Буду признательна за помощь! Нужно написать программу ** Паскале ABC 1. Вводится...

0 голосов

Буду признательна за помощь! Нужно написать программу на Паскале ABC 1. Вводится последовательность целых чисел, 0 -конец последовательности. Определить, содержит ли последовательность хотя бы одно совершенное число. Для определения совершенного числа создать функцию. Заранее спасибо!


спросил от (31 баллов) в категории Информатика
1 Ответ
0 голосов
ответил от Одаренный (2.5k баллов)

function isPerfect(n: integer): boolean;

begin

 if n > 1 then

 begin

   var sum := 0;

   for var i := 2 to Trunc(Sqrt(n)) do

     if n mod i = 0 then

       sum += (i + n div i);

   result := (sum + 1 = n)

 end

end;

begin

 var n: integer;

 var contain := False;

 repeat

   Read(n);

   if isPerfect(n) then contain := True

 until n <> 0;

 Print(contain);

end.

оставил комментарий от БОГ (678k баллов)

Обя́сните формулы sum и почему параметр равен 2?

...