Sunteți pe pagina 1din 1

program numere_prime_si_perfecte; var f:text; n,i:integer; {functia care verifica daca un nr este prim} function prim(x:integer):boolean; var i:integer;

g:boolean; begin g:=true; {parcurge pana la radical din numar; mai departe nu pot fi divizori neverificati de cei dinainte} for i:=2 to trunc(sqrt(x)) do if x mod i=0 then g:=false; prim:=g; end; {functia care verifica daca un nr este perfect} function perfect(x:integer):boolean; var i,s:integer; begin s:=0; for i:=1 to x-1 do if x mod i=0 then s:=s+i; if s=x then perfect:=true else perfect:=false; end; begin write('Dati n:');readln(n); assign(f,'date.in');rewrite(f); {afiseaza in fisier numerele prime} for i:=2 to n do if prim(i) then write(f,i,' '); close(f); {se verifica nr n daca este perfect sau nu} if perfect(n) then writeln('Numarul ',n,' este perfect!') else writeln('Numarul ',n,' nu este perfect!'); readln; end.

S-ar putea să vă placă și