Salve, non capisco perché non mi funziona questo programma, l'obiettivo è individuare i numeri perfetti (la somma dei divisori di un determinato numero equivale al numero stesso), l'algoritmo mi sembra corretto, attraverso la trace table non ho notato problemi, ma l'output è totalmente errato, numeri che non capisco nemmeno sinceramente. Vi posto il codice, se qualcuno è interessato e vuole aiutarmi ne sarei lieto.
#include <stdio.h>
main () {
int i=2,div,num=0,somma=0;
while (i<1000) {
for (div=2;div<=i;div++) {
if (i%div==0) {
num=i/div;
somma=somma+num;
}
if (somma==i)
printf("%d ",somma);
}
i++;
}
}
Penso che si debbano anche reimpostare a 0 le variabili num e somma dopo il ciclo for, ma in quel caso scompare del tutto l'output. Per quale motivo?