您的位置:首页 > 其它

1007. 素数对猜想 (20)

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

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

输入格式:每个测试输入包含1个测试用例,给出正整数N。

输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。

输入样例:

20

输出样例:

4


//关键在于判断素数,采用开平方的方法可以节约时间,不然最后一个测试用例会超时

#include<iostream>

#include <math.h>

using namespace std;

bool fun(int);

int main()

{

int n;

cin>>n;

int a=1,num=0;

for(int i=1;i<=n;i++)

{

if(fun(i))

{

if(i-a==2)

{

num++;

}

a=i;

}

}

cout<<num;

return 0;.

}

bool fun(int t)

{

int temp = sqrt(t); //开平方

if(t<=3)

{

return true;

}

for(int p=2;p<=temp;p++) //采用开平方的数作为最后一个,可以节约时间

{

if(t%p==0)

{

return false;

}

}

return true;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: