py.user.next
if x > 3 and x % 2 == 0 or x <= 1:
return False
эта проверка на чётность имеет один недостаток
если число больше трёх и не делится на два, то оно сравнивается с единицей
а зачем его сравнивать с единицей, если оно уже больше трёх ?
можно сделать:
если число больше трёх и не делится на два, то выполнить цикл
иначе сравнить его с единицей
def isprime(x):
if x > 3:
if x % 2 == 0:
return False
for i in range(3, int(x ** 0.5) + 1, 2):
if x % i == 0:
return False
elif x <= 1:
return False
return True
print(isprime(121))
baa, у тебя тройка зачем-то на два делится
потом ещё для любого числа проверяется, не превышает ли оно двойку
если в функцию будут подавать много-много больших чисел, то все они будут сравниваться с двойкой, первым делом проверяясь на нахождение слева от неё на числовой оси
то есть ты предполагаешь, что функция будет иметь дело с числами меньшими двух чаще, чем она будет иметь дело с числами большими двух
Isem
пишем
x&1==0
а потом ещё равно убрать и сидеть загадки разгадывать потом через полгода
эта запись затемняет код, а ускорение ещё надо доказать