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

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.
#6
vote_ok
von eulerscheZhl (5230 Punkte) - 06.03.2015 um 08:45 Uhr
Da noch keiner das Sieb des Eratosthenes verwendet hat, hier meine Lösung:
Quellcode ausblenden C#-Code
using System;

namespace trainYourProgrammer
{
	class MainClass
	{
		public static void Main(string[] args) {
			Console.Write ("Primzahlen ermitteln bis: ");
			int max = int.Parse(Console.ReadLine ());
			bool[] prime = new bool[max + 1];

			//annehmen, dass alle Zahlen prim sind, bis das Gegenteil bewiesen ist
			for (int i = 2; i <= max; i++) {
				prime [i] = true;
			}

			for (int i = 2; i <= max; i++) {
				if (prime [i]) {
					for (int j = 2 * i; j <= max; j += i) {
						prime [j] = false; //j ist Vielfaches von i und daher nicht prim
					}
				}
			}

			for (int i = 2; i <= max; i++) {
				if (prime [i]) {
					Console.WriteLine (i);
				}
			}
		}
	}
}

Kommentare:

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

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