Ich bin neu in der Programmierung und ich habe ein Problem im Internet gefunden, um die 1000. Primzahl zu zeigen. Aber das Problem ist, dass mein Code aber ich habe ein paar Probleme damit.Zählen Primzahlen
count=0
prime=[]
n=2
while count != 1000:
if n == 2 or n == 3 or n == 5 or n == 7 or n == 11:
prime.append(n)
n=n+1
count=count+1
elif n%2 == 0 or n%3 == 0 or n%5 == 0 or n%7 == 0 or n%11 == 0:
n=n+1
else:
prime.append(n)
n=n+1
count=count+1
print(prime[999])
Das Problem kommt, wenn ich eine Zahl wie 403. Nach dem Code habe ich schrieb es eine Primzahl ist, aber es ist eigentlich nicht, weil es sich um 13 geteilt werden kann und 31
ich kam ein Lösung, aber ich weiß nicht, wie es geht und ob es eine bessere Lösung gibt. Wenn Sie mir helfen, bitte versuchen Sie, meinen Code zu bewahren, bitte geben Sie mir nicht völlig neuen Code.
Meine Lösungen sind:
elif n%prime[:]==0
n=n+1
Also im Grunde, was ich versuche zu einem der anderen Primzahlen zu tun versucht, die Nummer 403, zum Beispiel zu teilen, die ich früher aufgenommen habe. Aber aus irgendeinem Grund gibt mir dieser Code einen Fehler. Ich möchte dem Programm mitteilen, dass es "auf jede Nummer in der Liste verteilt ist". Danke für die Hilfe :)
Was '% Primzahl sein [:] == 0 'tun soll? Meinst du "für i in prime: wenn n% i == 0"? –
Ja, aber ich habe versucht, es ohne den Befehl "for" zu machen –