题目
1007 素数对猜想 (20分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<10^5),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
我的解
number = input()
number = int(number)
import math
#判断质数函数
def isprime(n):
if n == 2 or n == 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
for k in range(6,int(math.sqrt(n)) + 2, 6):
if n % (k-1) == 0 or n % (k+1) == 0:
return False
return True
if number<100000:
#找出所有质数,存在prime列表中
prime = []
for j in range(2,number+1,1):
if isprime(j) == True:
prime.append(j)
k = 1
num = 0
#差值为2进行计数
while k<len(prime):
cha = prime[k]-prime[k-1]
if cha == 2:
num += 1
k=k+1
print(num)