{first 10-digit prime found in consecutive digits e}.com

将问题分解为2个:

一、如何算出或者找到足够精确的e?

1)e小数后100万位

  1. 计算公式:


    e计算公式

二、如何找到第一个10位素数

1)从第10位开始,计算前10为是否是质数。如果不是,则去掉第一位,增加最末一位,再判断,直到结果为真。

2)判断是否为素数:能被除了1和自身以外任意数字整除都不行

对于之前素数算法的优化:
上篇文章中,内部参数一直循环到了p-1无法整除才算证明为素数,但实际上,只要做到 int(p/2)就可证明这是个素数了,因为所有大于int(p/2) 的数,P除以的结果一定在(1,2)之间。

这样调整了代码之后,寻找打印素数的效率快了一倍。

def getprim(n):
    p=3
    x=0
    while(x

具体题目求解方法做出来了再贴上。

你可能感兴趣的:({first 10-digit prime found in consecutive digits e}.com)