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

11 Lösungen Lösungen öffentlich
#58

Alle Primzahlen bis zu einem Maximalwert ermitteln

Anfänger - C# von devnull - 26.02.2014 um 18:36 Uhr
Es soll ein Programm geschrieben werden, welches alle Primzahlen im Bereich von 2 bis zu einem Maximalwert sucht und auf der Konsole ausgibt.
Den Maximalwert soll der Benutzer beim Programmaufruf auf der Kommandozeile angeben können.
Der Algorithmus zur Primzahlensuche ist frei wählbar.
#2
vote_ok
von wladi-g (1310 Punkte) - 31.03.2014 um 12:24 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;

namespace Primzahlen
{
    class Primzahlen
    {
        static void Main(string[] args)
        {
            List<int> list = new List<int>();

            Console.WriteLine("Primzahlen im Bereich von 2 bis Maximalwert");
            Console.Write("Geben Sie einen Maximalwert(integer) ein: ");
            int eingabe = Eingabe(Console.ReadLine());
            list.Add(2);

            for(int i = 3; i <= eingabe; i++)
            {
                if (ZahlAufTeilerTesten(i) == true)
                {
                    list.Add(i);
                }
            }

            

            Console.WriteLine("Die Primzahlen im Bereich 2 bis " + eingabe + ":");
            foreach (int i in list)
            {
                Console.WriteLine(i);
            }
            Console.Read();
        }

        public static int Eingabe(string text)
        {
            try
            {
                int maximalwert = Convert.ToInt32(text);
                if (maximalwert < 2)
                {
                    Console.Write("Wert kleiner 2.\nBitte einen Maximalwert eingeben: ");
                    return Eingabe(Console.ReadLine());
                }
                else
                {
                    return maximalwert;
                }
            }
            catch
            {
                Console.Write("Der Wert konnt nicht gelesen werden.\nBitte geben Sie einen Maximalwert ein: ");
                return Eingabe(Console.ReadLine());
            }
        }

        public static bool ZahlAufTeilerTesten(int zahl)
        {
            for (int i = 2; i < zahl; i++)
            {
                if (zahl % i == 0)
                {
                    return false;
                }
            }
            return true;
        }
    }
}

Kommentare:

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

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