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

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.
#2
vote_ok
von Mexx (2370 Punkte) - 19.09.2014 um 12:33 Uhr
Quellcode ausblenden C#-Code
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

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