C# :: Aufgabe #60 :: Lösung #2
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.
#2

von Mexx (2370 Punkte)
- 19.09.2014 um 12:33 Uhr

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace VollkommeneZahlenErmitteln { class Program { static void Main(string[] args) { Console.WriteLine("Geben Sie eine natürliche Zahl grösser 0 und kleiner 100000 ein"); string input = Console.ReadLine(); int zahl = Convert.ToInt32(input); List<int> teiler = new List<int>(); for (int i = 1; i <= zahl / 2; i++) { int rest = zahl % i; if (rest == 0) teiler.Add(i); } int ergebnis = 0; for (int i = 0; i < teiler.Count; i++) { ergebnis += teiler[i]; } if (ergebnis == zahl) { for (int i = 0; i < teiler.Count; i++) { if (i != teiler.Count - 1) Console.Write(teiler[i].ToString() + " + "); else Console.Write(teiler[i].ToString() + " = "); } Console.Write(zahl); } else { Console.WriteLine(zahl + " ERFUELLT DIE BEDINGUNG NICHT"); } Console.ReadKey(); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1