Я запустил два кода одной и той же цели, чтобы проверить, является ли число простым или нет, и я хочу знать, почему один код быстрее другого.
1) Код с исключенными случаями с помощью if, elif ииначе:
from time import time
def isprime(n):
if n<=1:
return False
elif n==2:
return True
elif n>2 and n%2==0:
return False
else:
x=int(n**0.5)
for i in range(3,x+1,2):
if n%i==0:
return False
return True
t0=time()
for i in range(1,1000):
print(isprime(i))
t1=time()
print("time used for solving this:",t1-t0)
2) Код, который выполняется больше для условий k = цикла:
from time import time
def isprime(n):
if n<=1:
return False
else:
for i in range(2,(n//2)+1):
if n%i==0:
return False
return True
t0=time()
for i in range(1,1000):
print(isprime(i))
t1=time()
print("time used for solving this:",t1-t0)
У меня есть два кода (как показано выше), оба проверяют на простое число, но вво-первых, я делаю больше для цикла, чтобы проверить условие, а во-вторых, я устраняю запросы, используя if, elif и др.
Однако код с циклом more for имеет лучшую производительность. Я ожидал, что первый будет быстрее, а второй - быстрее.
Время, затрачиваемое первым для решения цикла for, равно 8.115293025970459
, а время секунда - 6.84753155708313
.