7-55 素数对猜想 (20分)

7-55 素数对猜想 (20分)
让我们定义d
​n
​​ 为:d
​n
​​ =p
​n+1
​​ −p
​n
​​ ,其中p
​i
​​ 是第i个素数。显然有d
​1
​​ =1,且对于n>1有d
​n
​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数N(<10
​5
​​ ),请计算不超过N的满足猜想的素数对的个数。

输入格式:
输入在一行给出正整数N。

输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。

输入样例:
20
输出样例:
4

分析:
埃氏筛 0 1 不是素数 叠加素数筛;

#include<bits/stdc++.h>
using namespace std;
int prime[100009],book[100009];
void func(){
    
    
	int t=0;
	memset(book,1,sizeof(book));
	book[0]=0,book[1]=0;
	for(int i=0;i<=(100009);i++){
    
    
		if(book[i]){
    
    
			prime[t++]=i;
			for(int j=2*i;j<=100009;j+=i)
			book[j]=0;
		}
	}
}
int main(){
    
    
	int n,sum=0;
	cin>>n;
	func(); 
	for(int i=1;;i++){
    
    
		if(prime[i]>n){
    
    
			cout<<sum;
			return 0;
		}
		if(prime[i]-prime[i-1]==2)sum++;
	}
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Minelois/article/details/112913855
今日推荐