from math import sqrt
def isPrime(num) :
if num in [2, 3 ] : return True
elif num < 2: return False
for i in [2] + range(3, int(sqrt(num)), 2) :
if not num % i: return False
return True
liste = [i for i in range(2, 201) if isPrime(i)]
Примечание. В Python 3.x range()
возвращает объект range
, а не list
, поэтому вам придется изменить
for i in [2] + range(3, int(sqrt(num)), 2):
до
for i in [2] + list(range(3, int(sqrt(num)), 2)):
чтобы избежать результирующего TypeError
.