Wie ist die Zeile # 9 (wenn n + 1 == x) relevant für die Überprüfung, ob die Zahl prim ist?Brauchen Sie Hilfe, Zeile 9 der is_prime-Funktion zu verstehen; Gibt es einen einfacheren Weg für die Funktion?
Gibt es eine einfachere Möglichkeit, diese Funktion zu erstellen?
def is_prime(x):
if x == 2:
return True
elif x > 2:
for n in range(2, x):
if x % n == 0:
return False
else:
if n + 1 == x:
return True
else:
return False
'wenn n + 1 == x' prüft einfach, ob die aktuelle Zahl' n' um eins kleiner ist als die Zielnummer 'x'. Wenn Sie den ganzen Weg bis zu der Zahl kurz vor 'x' haben, ohne eine Zahl zu finden, die sich darin aufteilt (eigentlich nicht einmal so weit, es gibt viele Optimierungen), wie kann' x' etwas anderes als prim sein? – jonrsharpe
@jonrsharpe es sei denn, das OP fragt, was ist der Sinn dieses Blocks? Ich nehme an, man könnte es einfach entfernen und "True" nach dem "for" direkt anstelle des ziemlich seltsamen Checks ... –
@JonClements yeah, es ist kein großartiges Beispiel für die Kunst der Erstprüfung! – jonrsharpe