Cześć,
ostatnio mój znajomy na rozmowie kwalifikacyjnej musiał napisać program, który definiuje czy dana liczba jest liczbą pierwszą:
Mam dwie wersje programu:
1)
while True:
a = int(input("Podaj liczbę: "))
for i in range(2,a):
if a % i == 0:
print("not prime")
break
else:
print("prime")
break
W tym wypadku np. liczbę "9" oraz liczbę "25 zalicza jako liczbę pierwszą". Dlaczego? Gdzie leży błąd i czemu jest to źle rozwiązane?
Dlaczego np. w tym wypadku program działa poprawnie?
while True:
a = int(input("Podaj liczbę: "))
for i in range(2,a):
if a % i == 0:
print("not prime")
break
else:
print("prime")
Może ktoś ma dostęp do strony/materiałów, które mogłyby wyjaśnić problem?