【发布时间】:2014-11-23 17:12:21
【问题描述】:
我试图通过使用附加代码来支持素数定理。我想以某种方式证明小于 n 的素数之间的平均差距是 log(n)。我现在拥有的代码可以确定某个数字是否为素数,然后第二部分计算我范围内每个连续素数的素数差距。关于如何使用以下代码在 python 中进行的任何想法?
from pylab import *
def Is_Prime (n):
if n==1:
return False
if n == 2 or n == 3:
return True
if n == 4:
return False
if n%2 == 0 or n%3 == 0:
return False
for i in range(5,int(n**0.5)+1,6):
if n%i == 0 or n%(i+2) == 0:
return False
return True
k = 0
for i in range (1,100):
if Is_Prime(i) == True:
print(i)
k+=1
print "Total number of prime numbers in [1,100] is", k
previous = 2
n = 0
for i in range(3,100000):
if Is_Prime(i):
n = n+1
current = i
gn = current - previous
print gn
plot(n,gn,'rs')
xlabel('n')
ylabel('g(n)')
previous = i
if n == 100:
break
show()
【问题讨论】:
-
什么不完全有效? :) 如果您想加快主要列表的创建速度,请考虑使用埃拉托色尼筛:en.wikipedia.org/wiki/Sieve_of_Eratosthenes
-
我上面的代码工作正常。我希望添加一些东西来找到平均质数差距,但我不知道如何。
标签: python-2.7 primes