Python用无限制数组实现求素数,不限制质数的个数,用筛选的方法!

#相信很多人能写出比我还精简的算法

#但你能写出比Python还优雅的算法吗?!

import math #动用并 import 导入 math 函数

A=[] #定义一个数组并且不初始化,因为不知道这个数组要用多少个元素呢 # X为被除数, j 为内循环变量, A[j]为 用来试除的除数A.append(1) #A[0]=1 为数组赋初始值,,因为要便于循环A.append(2) #A[1]=2X=1 #2==X 时去执行第一次循环while True: #无限循环 X=X+1 isPrime=1 #默认 (假设)X 是个质数?? 一直到判断出 X不是质数 那是让 isPrime=0 x1=int( math.sqrt(X) ) #第二个退出条件是: j 大于了 X的平方根(+1) 即x2 #第一个退出条件是: A[j]大于了 X 的平方根(即x1) x2=x1+1 for j in range(1, x2 ): if A[j]>(x1 ): break if 0==X%A[j]: isPrime=0 break if 1==isPrime: #终于找到一个X 是质数咯, A.append(X) #压栈, print (X) #并输出吧!

最糟糕的行为是抱怨,最易见效 的努力是从自己做起。

Python用无限制数组实现求素数,不限制质数的个数,用筛选的方法!

相关文章:

你感兴趣的文章:

标签云: