Wie programmiere ich ein Primzahlenüberprüfer mit Lazarus?

3 Antworten

Kenne Lazarus nicht, aber den Algorithmus:

Fange bei i = 2 an. Deine Zahl heißt N.

  1. Prüfe, ob i² > N. Wenn ja ist N eine Primzahl.
  2. Prüfe, on N % i == 0 ist. Wenn ja, ist N keine Primzahl
  3. Erhöhe i um 1
  4. Fahre bei Punkt 1 fort.

Ist nicht der schönste, aber verbessern kann man fast immer.

% ist der Modulo-Operator

== ist der Vergleich auf Gleichheit

Du überprüfst in einer Schleife, ob die Zahl n durch [2; n/2] teilbar ist bzw. gleich 0 oder 1 ist (das sind keine Primzahlen). Wenn bei irgendeinem dieser Werte n % ... = 0 ist, weißt du, dass die Zahl keine Primzahl ist.

Wie man das in Pascal implementiert kann ich dir nicht sagen. Die Schleife würde in C++ aber so aussehen:

for (int i = 2; i <= n/2; i++) {
  if (n % i == 0) // keine primzahl
}  
Woher ich das weiß:Hobby – Programmiere in Python, C/C++, Rust & Java.