Viết chương trình sử dụng lệnh lặp for…do tìm các số hoàn hảo nhỏ hơn 1000, số hoàn hảo là những số bằng tổng các ước thực sự của nó. Giúp mik với ạ Mình cảm ơn Mình đang cần gấp ạ

2 câu trả lời

Program FNG;
Uses crt;
Var i,s: longint;

Function shh(a: longint): boolean;
Var s: longint;
Begin
        s:=0;
        For i:=1 to a div 2 do
                If a mod i = 0 then s:=s+i;
        If a=s then exit(true);
        exit(false);
End;

Begin
        For i:=1 to 1000 do
                If shh(i) then Write(i,' ');
        Readln
End.

Program Hotboy ;

Uses crt;

Var s,i,j : integer ; 

Begin

S:=0;

Clrscr; 

For i:=1 to 1000 do

Begin

For j:=1 to i do

If i mod j =0 then s:=s+j ;

If s=2*J then write(i:6:3);

End;

Readln;

End.