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

0 голосов
18 просмотров

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


Информатика (31 баллов) | 18 просмотров
Дан 1 ответ
0 голосов

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.

(2.5k баллов)
0

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