素数指的是只能被1和它自己本身整除的数字。
使用遍历求素数的快速方法如下方法如下:
import math
def prime(max=10**10):
lst=[2]#后面不会遍历到2,所以先写入
for i in range(3,max,2):#跳过偶数
f=True#先设i是质数
for j in lst:#遍历现有质数
if i%j==0:
f=False#若i可被现有质数整除,则i不是质数,并跳出循环
break
elif j>=math.sqrt(i):#如果现遍历到的质数大于i的平方根且并未跳出循环,则该数是质数
break
if f:
lst.append(i)#若还是质数,则加入素数列表
return lst#最后返回素数列表
if __name__=='__main__':
print(prime(100))
这段代码不计算偶数和大于当数的平方根,同时只看是否可被素数整除,大大加快了运算速度。