perfect number



  • Hallo zusammen

    Ich würde gern ein Programm schreiben, dass die perfekten Zahlen zwischen 1 und 50.000 auflistet. So sieht das bei mir aus:

    #include <iostream>
    using namespace std;
    
    int main()
    {
      int t;
      int a;
      int x;
      int sum = 0;
    
      for (t=1; t<=50000; t++) {
        for (a=1; a<t; a++) {
          if (t%a == 0) {
    	sum += a;
          }
        }
        if (t == sum) {
          cout << t << " is perfect.\n";
        }
      }
    
      return 0;
    
    }
    

    Wo liegt der Fehler?

    Danke vielmals



  • Nachtrag:

    In number theory, a perfect number is a positive integer that is equal to the sum of its proper positive divisors, that is, the sum of its positive divisors excluding the number itself



  • du musst sum auch wieder auf 0 setzen, sonst addiert der immer munter weiter.

    Vielleicht sind da noch mehr Fehler, das ist mir jetzt auf den ersten Blick aufgefallen



  • Oh, das ging ja schnell 🙂
    Danke, es geht jetzt so wie ich wollte.


Anmelden zum Antworten