Project Euler 58

来源:互联网 发布:人工智能简史 编辑:程序博客网 时间:2024/05/08 00:35

很遗憾……很久没有来写程序了……

不仅没有写,即便写了……还是用的python……

想安慰自己说,用什么语言无所谓,只要回了算法什么的就好……


但我还是没看出好来……


def prime(n):a = [1 for i in range(n)]a[0], a[1], a[2] = 0, 0, 1pl = []t = s = 0for i in range(2,n):if a[i]:s+=ipl.append(i)j=i*it+=1while j<n:a[j]=0j+=ireturn pldef isprime(n, prime_list):if n in prime_list:return Truefor i in prime_list:if n<i:return Trueif n%i == 0:return Falsereturn Truedef main():prime_list = prime(100000)count_prime = 0now = 1circle = 1while True:circle += 1now += circleif isprime(now,prime_list):count_prime += 1for i in range(3):now += 2*circle-2if isprime(now,prime_list):count_prime += 1if count_prime/(4*circle-3)<0.1:print(2*circle-1)breaknow += circle-1if __name__ == '__main__':main()

生成的方法看自己的想法了,然后判断素数的时候,因为范围比较大,所以先生成小范围的,然后用这个小范围的进行检测。

原创粉丝点击