本帖最后由 happy886rr 于 2016-4-11 09:34 编辑
三种不同算法,最后一个基于最好的数学理论. | # Python解EulerPJ-7P:The 10001st prime number is? | | # 常规解法用小于根号N的奇数去除 | | N=1;i=1; | | while i<10001: | | N+=2;v=1 | | for j in range(3,int(N**0.5)+1,2): | | if N%j is 0: | | v=0; | | if v is 1: | | i+=1 | | print(N)COPY |
| | | | | N=1;i=1;p=[] | | p.append(3) | | while i<10001: | | N+=2;v=1 | | for j in range(1,len(p)): | | if N%p[j] is 0: | | v=0 | | if p[j]**2>N: | | break | | if v is 1: | | i+=1;p.append(N) | | print(N)COPY |
| | | | | N=1;i=1;p=[] | | p.append(3) | | while i<10001: | | N+=2;v=1 | | for j in range(1,len(p)): | | if N%p[j] is 0: | | v=0 | | if v is 1: | | i+=1 | | if N<333: | | p.append(N) | | print(N)COPY |
|