让我们定义dn​为:dn​=pn+1​−pn​,其中pi​是第i个素数。显然有d1​=1,且对于n>1有dn​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

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

输入格式:

输入在一行给出正整数N

输出格式:

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

输入样例:

20

输出样例:

4

 

#include<bits/stdc++.h>
using namespace std;
bool miss(int p)
{
	if(p==2)
	return true;
	int d=sqrt(p);
	for(int j=2;j<=d;j++)
		{
			if(p%j==0)
			{
				return false;
				
			}
		}
	return true;
	
}
int main()
{
	int n;
	cin>>n;
	int t=0;
	if(n==1){
		cout<<"0"<<endl;
	}
	else{
	for(int i=2;i<=n-2;i++)
	{
		if(miss(i) && miss(i+2)) t+=1;
		
	}
	cout<<t<<endl;
	}
	return 0;
}
/*注意 如果时间超限,换求素数的方法,求sqrt(在c++里可以直接用) 没有时间限制可以/2对半看。*/

切记:不能使用这样计数 

for(int i=2;i<=n-2;i++)
	{
		while(miss(i))
		{
			if(miss(i+2)) t+=1;
		}
		
	}
/*while会一直进入死循环,会出错哒*/
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐