第十八种:
def odd_iter():
n = 1
while True:
n = n+2
yield n
def not_divisible(n):
return lambda x: x % n > 0
def primes():
yield 2
it = odd_iter()
while True:
n = next(it)
yield n
it = filter(not_divisible(n),it)
for n in primes():
if n < 100:
print(n,end=" ")
else:
break
第十九种
from math import sqrt
def is_prime(n):
if n == 1:
return False
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return False
return True
count = 0
for i in range(1,100):
if is_prime(i):
count = count + 1
print(i,end=" ")
第二十种
##第二十种
import math
def getPrime(maxNum):
primeList = []
for x in range(2, maxNum+1):
x_sqrt = math.sqrt(x)
for prime in primeList:
if prime > x_sqrt:
primeList.append(x)
break
if x % prime == 0:
break
else:
primeList.append(x)
return primeList
print(getPrime(100))
##第二十一种
i = 2
prime_number = []
while i < 100:
j = 2
while j <= i:
if i == j:
prime_number.append(i)
# print(i)
if i % j == 0:
break
j += 1
i += 1
print(prime_number)
##第二十二种
alist=[2,3]
for i in range(5,100):
num=i**0.5
num=int(num)
for m in range(2,num+1):
if i%m==0:
break
elif m==num:
alist.append(i)
else:
continue
print(alist)
##第二十三种
result = [(y, [x for x in range(2, y) if y % x == 0]) for y in range(2, 100)]
print([num[0] for num in result if len(num[1]) == 0])
##第二十四种
from math import sqrt
count = 0
for n in range(2,100):
sushu = True
for i in range(2, int(sqrt(n) + 1)):
if n % i == 0:
sushu = False
break
if n == 1:
print('{}既不是素数,也不是合数'.format(n))
elif sushu == True:
print(n, end=' ')
##第二十五种
sushu = [2]
for i in range(2, 101):
for temp in range(2, i):
if i % temp == 0:
break
print('i=', i, 'temp=', temp)
elif temp == i-1:
sushu.append(i)
print(sushu)