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
2107545

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.