Создать подпрограмму, которая получает в качестве аргумента целое число и проверяет, является ли оно совершенным. Используя подпрограмму вывести на экран все совершенные числа из промежутка целых чисел, определенного пользователем, и их общее количество. Pascal ABC
function isPerfectNumber(n: integer): boolean; var i, sum: integer; begin sum := 0; for i := 1 to n div 2 do begin if n mod i = 0 then sum := sum + i; end; isPerfectNumber := sum = n; end;
var start, finish, number, count: integer;
begin count := 0;
writeln('Enter the start of the range: '); readln(start);
writeln('Enter the end of the range: '); readln(finish);
writeln('Perfect numbers in the range ', start, ' to ', finish, ' are: ');
for number := start to finish do begin if isPerfectNumber(number) then begin writeln(number); count := count + 1; end; end;
writeln('Total number of perfect numbers: ', count); end.
program PerfectNumbers;
function isPerfectNumber(n: integer): boolean;
var
i, sum: integer;
begin
sum := 0;
for i := 1 to n div 2 do
begin
if n mod i = 0 then
sum := sum + i;
end;
isPerfectNumber := sum = n;
end;
var
start, finish, number, count: integer;
begin
count := 0;
writeln('Enter the start of the range: ');
readln(start);
writeln('Enter the end of the range: ');
readln(finish);
writeln('Perfect numbers in the range ', start, ' to ', finish, ' are: ');
for number := start to finish do
begin
if isPerfectNumber(number) then
begin
writeln(number);
count := count + 1;
end;
end;
writeln('Total number of perfect numbers: ', count);
end.