Wpis z mikrobloga

siemanko, mógłby mi ktoś z Was powiedzieć, czy ten test pierwszości jest poprawny?

LINK

def get_prime():
n = int(input("enter a number: "))
r = range(1, n+1 )
divisiors = []

for i in r:
if n % i == 0:
divisiors.append(i)
print(divisiors)
if len(divisiors) > 2:
return"its not prime number"
else:
return "its prime number"

while True:
get_prime()

#naukaprogramowania #python
  • 10
@kaktusowyAloes: poprawny, ale nieoptymalny, najprostsza optymalizacja to liczyć tylko do pierwiastka z n

from math import floor, sqrt

def get_prime():
n = int(input("enter a number: "))
r = range(2, floor(sqrt(n))+1 )
divisiors = []

for i in r:
if n % i == 0:
divisiors.append(i)
print(divisiors)
if len(divisiors) > 0:
return"its not prime number"
else:
return "its prime number"

while True:
print(get_prime())