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:
#includeint isPerfect(int x) { int y, s = ....(1)....; for(y = 1; y < x; y++) if(....(2).... == 0) s += y; return (....(3)....); } void main() { int x=1, c=0; while(c < 5) { if(isPerfect(x)) { printf("%d\n", x); ....(4)....; } x++; } }
Soluzione:
- 0
- x%y
- s == x
- c++
Il codice completo è
#includeint isPerfect(int x) { int y, s=0; for(y=1; y < x; y++) if(x%y == 0) s += y; return (x == s); } int main() { int x=1, c=0; while(c < 5) { if(isPerfect(x)) { printf("%d\n", x); c++; } x++; } return 0; }