Frage:
also ich soll ein programm schreiben, dass überprüft ob eine Zahl eine vollkommene Zahl ist.
Eine Zahl heißt vollkommen, wenn die Zahl gleich der Summe ihrer Teiler ist (die Zahl selber gilt in diesem Fall nicht als Teiler).
https://de.wikipedia.org/wiki/Vollkommene_Zahl
zb.:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
Vom Code her denk ich dass ich auf einem guten Weg bin jedoch dürfte bei der Berechnung was nicht stimmen (ich vermute den Fehler fast in der for Schleife), finde leider den Fehler nicht... Vielleicht kann wer helfen wäre super dankbar! Code:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int zahl;
int i;
int j=0;
scanf ("%d", &zahl);
for(i=2;j<=zahl && (zahl%i) == 0;i++){
j=j+i;
}
if (j==zahl){
printf("The number %d is a perfect number!", zahl);
}
else {
printf("The number %d is not a perfect number!", zahl);
}
EXIT_SUCCESS;
}