发现运算速度和使用range()没有太大差别…
from os import system
def loop(m, n, k): #功能与range(m, n, k)相同,防止数值过大时list占用过多空间
num = m
while num < (n-k):
if num == m:
yield m
num += k
else:
yield num
num += k
def prime(n):
for i in loop(1, n, 2): #起始数值为奇数
j = 2
while j<i and i%j != 0:
if j == 2:
j += 1
else:
j += 2
if j == i:
yield j
def main():
n = 10000
print(2, end = ' ')
for num in prime(n):
print(num, end = ' ')
system('pause')
main()
来源:CSDN
作者:Trxye.
链接:https://blog.csdn.net/weixin_40572034/article/details/104200361