Guten Tag,
ich möchte eine Funktion schreiben, die mir die Teilerpaare ausgibt:
Zur Definition: Zwei ganze Zahlen bilden ein Teilerpaar, wenn die Summe der Teiler der beiden Zahlen gleich ist.
Also zum Beispiel:
(12,26)
summe der Teiler von 12: 1+2+3+4+6=16
summe der Teiler von 26: 1+2+13=16
Nun habe ich ein Programm geschrieben, dass mir überprüft, ob 2 Zahlen ein Teilerpaar sind. Siehe unten:
Aber mit folgener Anweisung habe ich Probleme:
Zitat: |
Verwenden Sie die Funktion, um ein Programm zu schreiben, das unter den 1000 ersten natürlichen Zahlen alle Teilerpaare ausgibt. |
Wie soll diese Aufgabe zu interpretieren sein?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| static bool teiler_paar(int a, int b) { int teiler_zahl1 = 0; int teiler_zahl2 = 0; int summe_teiler = 0; bool ergebnis = false; for(int divisor_a = 1; divisor_a < a; ++divisor_a) { if (a % divisor_a == 0) { teiler_zahl1 = teiler_zahl1 + divisor_a; } }
for(int divisor_b = 1; divisor_b < b; ++divisor_b) { if (b % divisor_b == 0) { teiler_zahl2 = teiler_zahl2 + divisor_b; } }
Console.WriteLine("Die Summe der Teiler von a ist: " + teiler_zahl1); Console.WriteLine("Die Summe der Teiler von b ist: " + teiler_zahl2); if (teiler_zahl1 == teiler_zahl2) { Console.WriteLine(a + " und " + b + " sind ein Teilerpaar"); } return ergebnis;
} |