天天看点

aden - 圆周率写入文件查找生日

def pi(n):
    p = 10 ** (n + 10)  # 准备初始整数,先多乘 k 个 0,以增加精度,最后再去掉,这里我取 k=10
    a = p * 16 // 5     # 第一项的前半部分
    b = p * 4 // -239   # 第一项的后半部分
    f = a + b           # 第一项的值
    p = f               # π
    j = 3
    while abs(f):       # 当|f|=0后计算π的值就不会再改变了
        a //= -25       # 第n项的前半部分
        b //= -57121    # 第n项的后半部分
        f = (a + b) // j
        p += f
        j += 2
    return p // 10**10  # 去掉 k 位,k=10

s = pi(130000)
# 将数字转成字符串
s = str(s)
# 在字符串里寻找我们的生日位置
print(s.find("20071028"))
# 打开文件
f = open("pai.txt","w")
# 把13万位的圆周率写入到pai。txt
f.write(s)
f.close()
# 关闭文件