Guten Abend,
ich soll eine Zahl einlesen und damit
1) die Teiler feststellen
2) abfragen, ob es sich um eine vollkommende Zahl handelt
Eine vollkommende Zahl ist dann vollkommen, wenn sie gleich der Summe ihrer eigenen echten Teiler ist
BSP: 6 ist eine vollkommende Zahl
Also 6 hat ja die Teiler 1,2,3 = 6
Nun habe ich ein einziges Problem:
ich darf ja nicht die Zahl selber durch sich teilen, obwohl das auch ein Teiler ist, aber diesen Teiler soll ich außenvor lassen.
Mein Programm läuft nun auch, aber eine Stelle ist mir noch unklar: no = no+1 in der Abfrage, ob die Zahl teilbar ist!
Muss ich normal nicht: den Array - 1 abziehen?
Ich verstehe nicht, warum der Array erhöht wird.
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: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62:
| using System; using System.Collections.Generic; using System.Text;
namespace HA003 { class Program { static void Main(string[] args) { Console.WriteLine("#####VOLLKOMMENDE ZAHLEN#####"); Console.WriteLine(); Console.WriteLine("Defintion: Eine Zahl heißt vollkommen:"); Console.WriteLine("wenn sie gleich der Summe ihrer eigenen echten Teiler ist"); Console.WriteLine(); Console.WriteLine("Geben Sie eine Grenze ein, bis wohin Sie vollkommende Zahlen auslesen möchten"); int grenze_zahl = Convert.ToInt32(Console.ReadLine()); int[] teiler = new int[grenze_zahl]; int zahl_teilbar = 1; int summe = 0;
Console.WriteLine("Folgende Zahlen sind teilbar durch " + grenze_zahl + ":"); for (int no = 0; no < grenze_zahl; ++no) {
if (grenze_zahl % zahl_teilbar == 0) { no = no + 1; teiler[no] = zahl_teilbar; Console.Write(teiler[no] + " "); summe = teiler[no] + summe; }
zahl_teilbar++; }
Console.WriteLine(); if (summe == grenze_zahl) { Console.WriteLine(grenze_zahl + " " + "ist EINE vollkommende Zahl"); }
else if (summe != grenze_zahl) { Console.WriteLine(grenze_zahl + " " + "ist KEINE vollkommende Zahl"); } Console.ReadKey(); } } } |