C# :: Aufgabe #60 :: Lösung #1
9 Lösungen

#60
vollkommene Zahl (Mathematisches Problem)
Anfänger - C#
von bibir
- 03.09.2014 um 08:21 Uhr
Man nennt eine natürliche Zahl N "vollkommen", wenn die Summe aller echten Teiler von N gleich N ist.
Zum Beispiel ist 28 eine vollkommene Zahl, da 1 + 2 + 4 + 7 + 14 = 28 ist.
Schreibe ein Programm/Skript, das beliebig oft eine Zahl N (mit 0 < N < 100000) einliest und feststellt, ob N eine vollkommene Zahl ist. Falls ja, soll das Programm N und die zugehörenden echten Teiler ausgeben, andernfalls ist nur N und die Meldung "ERFUELLT DIE BEDINGUNG NICHT" zu drucken.
Zum Beispiel ist 28 eine vollkommene Zahl, da 1 + 2 + 4 + 7 + 14 = 28 ist.
Schreibe ein Programm/Skript, das beliebig oft eine Zahl N (mit 0 < N < 100000) einliest und feststellt, ob N eine vollkommene Zahl ist. Falls ja, soll das Programm N und die zugehörenden echten Teiler ausgeben, andernfalls ist nur N und die Meldung "ERFUELLT DIE BEDINGUNG NICHT" zu drucken.
#1

von syzon (410 Punkte)
- 05.09.2014 um 11:04 Uhr

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace Vollkommene_Zahlen { class Program { static void Main(string[] args) { //Deklarationen ArrayList Teiler = new ArrayList(); int Eingelesene_Zahl; int Summe_Teiler = 0; //Einlesen einer Ganzzahl Console.WriteLine("Bitte eine Zahl eingeben, um diese auf Vollkommenheit zu überprüfen: "); while (!int.TryParse(Console.ReadLine(), out Eingelesene_Zahl)) Console.WriteLine("Bitte eine Ganzzahl eingeben!"); //Berechnung Teiler for(int i = 1; i<=Eingelesene_Zahl-1; i++) { if(Eingelesene_Zahl%i==0) Teiler.Add(i); } //Aufsummierung Teiler for(int i = 0; i<Teiler.Count; i++) { Summe_Teiler += Convert.ToInt32(Teiler[i]); } //Prüfung ob die Summe der Teiler der eingelesenen Zahl entspricht + Ausgabe if (Summe_Teiler == Eingelesene_Zahl) { Console.WriteLine("Die eingebene Zahl " + Eingelesene_Zahl + " ist eine vollkommene Zahl, da ihre Teiler: "); for (int i = 0; i < Teiler.Count; i++) { if(i==Teiler.Count-1) { Console.Write(Teiler[i]+ " "); } if (i==Teiler.Count-2) { Console.Write(Teiler[i]+ " und "); } if (i!=Teiler.Count-1 && i!=Teiler.Count-2) { Console.Write(Teiler[i]+ ", "); } } Console.WriteLine("aufsummiert " + Eingelesene_Zahl + " ergeben."); } else { Console.WriteLine("Die eingebene Zahl ist nicht vollkommen."); } Console.ReadLine(); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1