Un numero intero positivo è detto perfetto se è uguale alla somma dei suoi divisori propri (cioè, i divisori maggiori di 0 e minori del numero stesso).
Il seguente programma deve stampare i primi 5 numeri perfetti.
Aggiungete le istruzioni che mancano:
Program perfect(Input, Output); Var x, c: Integer; Function isPerfect(x: Integer): Boolean; Var y, s: Integer; Begin s:=....(1)....; For y:=1 to x-1 Do If (....(2).... = 0) Then s:=s+y; isPerfect:=(....(3)....) End; Begin x:=1; c:=0; While(c < 5) Do Begin If(isPerfect(x)) Then Begin WriteLn(x); ....(4).... End; x:=x+1 End End.
Nota
- sostituire le dichiarazioni integer con longint