整数序列的质数生成方法

来源:互联网 发布:深入剖析nginx pdf 编辑:程序博客网 时间:2024/05/20 22:28

判断一个数是否为质数,常采用的的方法是取取该数的开方a, 如果从2-a中都不能整除,那么该数为质数。

程面中,通常会让你计算某个范围内所有的质数。把上面的公式写成一个函数,然后一个一个判断是传统的解决方法。不过,质数还有一条重要性质

    不能被小于它的平方根的所有质数整除就是质数。

我们可以利用已找到的质数来判断当前数是否为质数,这样可减少一些不必要的计算操作。

代码示例

import matha = range(2, 1000)  # a = [2, 3, 4, 5, 6, 7, ..., 1000], 所有质数设置为0a[2] = 0cur = 4while cur < len(a):    for i in range(math.sqrt(cur)):        if a[i] == 0:            continue        if a[cur] % a[i] == 0:            a[cur] = 0            break    cur += 1v = [i for i in a if i != 0]print vprint 'size', len(v)

这不是什么新发现,不过在答题时用了不寻常的方法,应该会比较得到面试官的青睐。

原创粉丝点击