viết chương trình Nhập 1 số nguyên dương n và kiểm tra xem n có phải là số hoàn hảo không.

2 câu trả lời

uses crt;

var n:longint;

tong,i:integer;

BEGIN clrscr;

write('Nhap so nguyen duong n: ');

readln(n);

tong:=0;

for i:=1 to n div 2 do

if n mod i=0 then tong:=tong+i;

if tong=n then

writeln(n,' la so hoan hao')

else writeln(n,'khong la so hoan hao');

readln

END.

var n:longint;

function hoanhao(n:longint):boolean;
var x,dem,c:longint;
begin
        dem:=0;
        for x:=1 to n-1 do
                if n mod x=0 then
                        dem:=dem+x;
        if dem=n then exit(true);
        exit(false);
end;

begin

write('Nhap n: '); readln(n);

if hoanhao(n) then write(' La so hoan hao ') else write('Khong phai so hoan hao');

readln

end.