Ich versuche Prolog zu lernen und jetzt versuche ich eine Liste des N-ten primenumber zu drucken:Liste des Nth Primzahlen Prolog
primes(N, N).
primes(N, F):-
prime(F),
write(F), nl,
NewF is F + 1,
primes(N, NewF).
primes(N):-
primes(N, 2).
Prime/1 prüft wheter die gegebene Zahl eine Primzahl ist.
Der Ausgang für Primzahlen (10) wird 2, 3 sein, wo es 2, 3, 5, 7 sein sollte, denn wenn der NewF nach 3 (was 4 sein wird) ist kein Prime. Es wird also weder den Schreib- (F) noch den rekursiven Aufruf ausführen. Ich habe mich gefragt, wie ich das beheben kann, also wird es nicht F schreiben, wenn es kein Prime ist, aber den Teil danach noch ausführen. Danke im Voraus!
Mögliches Duplikat von [Prolog Find N Primzahlen] (http://stackoverflow.com/questions/12446407/prolog-find-n-prime-numbers) – Prune