Я пытаюсь поддержать теорему о простых числах, используя прилагаемый код. Я хотел бы как-то показать, что средний разрыв между простыми числами меньше n равен log (n). Код, который у меня есть сейчас, может определить, является ли определенное число простым, а затем вторая часть вычисляет основной пробел для каждого последовательного правого в моем диапазоне. Любые идеи о том, как действовать в python, используя следующий код?Prime Number Теорема 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()
Что не работает точно? :) Если вы хотите ускорить создание прайм-листа, попробуйте вместо этого использовать сито Eratosthenes: http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes –
Мой код выше отлично работает. Я надеюсь добавить что-то, чтобы найти средний пробел, но я не знаю, как это сделать. – Sara20