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

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.
#3
2 Kommentare
vote_ok
von Gisbert5020 (3120 Punkte) - 02.05.2014 um 14:40 Uhr
Quellcode ausblenden C#-Code

using System;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Geben Sie eine Zahl ein, bis zu der die Primzahlen berechnet werden:");
            int zahl = Convert.ToInt16(Console.ReadLine());
            for (int i = 1; i <= zahl; i++)
            {
                int erg = i % 2;
                if (erg == 0 & i != 2)
                    continue;
                erg = i % 3;
                if (erg == 0 & i != 3)
                    continue;
                erg = i % 5;
                if (erg == 0 & i != 5)
                    continue;
                erg = i % 7;
                if (erg == 0  & i != 7)
                    continue;
                Console.Write(i + " ");
            }
            Console.ReadLine();
        }
    }
}

Kommentare:

pocki

Punkte: 4190

128 Aufgaben
40 Lösungen
6 Kommentare

#1
03.05.2014 um 23:15 Uhr
Diese Berechnung funktioniert nur, wenn die Zahl klein ist.
Beispiel: Gibt man eine Zahl größer 143 ein, so wird nach diesem Programm die Zahl 143 als Primzahl ausgegeben, obwohl sie keine ist (11*13=143)

Damit dieses Programm auch bei größeren Zahlen stimmt, muss man bei der Moduloüberprüfung auf alle bisherigen Primzahlen auch überprüfen.
post_arrow
39 0

Drizzt1990

Punkte: 150


3 Lösungen
2 Kommentare

#2
12.09.2014 um 11:03 Uhr
Die Lösung ist falsch...

lasst einfach mal Lösungen bis 500 berechen oder so... da ist dann z.B. 493 bei, was keine Primzahl ist da 17*29=493
post_arrow
43 0
Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben