C# :: Aufgabe #60 :: Lösung #7

9 Lösungen Lösungen öffentlich
#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.
#7
vote_ok
von kjaenke (1140 Punkte) - 07.11.2017 um 09:35 Uhr
Quellcode ausblenden C#-Code
namespace Exercise_60
{
    using System;
    using System.Collections.Generic;
    using System.Linq;

    internal static class Program
    {
        private static void Main()
        {
            for (var i = 1; i < 100000; i++)
            {
                List<int> t = i.FindeTeiler();
                if (i == t.Sum() - i)
                {
                    Console.Write($"{i} | " + "{");
                    foreach (var teiler in t)
                    {
                        Console.Write($" {teiler} ");
                    }
                    Console.WriteLine("};");
                }
                else
                {
                    Console.WriteLine($"{i} ERFÜLLT DIE BEDINGUNG NICHT");
                }
            }
            Console.Read();
        }

        private static List<int> FindeTeiler(this int n)
        {
            List<int> teiler = new List<int>();
            for (var i = 1; i <= n; i++)
            {
                if (n % i == 0)
                {
                    teiler.Add(i);
                }
            }
            return teiler;
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben