首页 > 学院 > 开发设计 > 正文

PAT B1007. 素数对猜想 (20)

2019-11-06 09:11:41
字体:
来源:转载
供稿:网友

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

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

输入格式:

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

输出格式:

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

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

*思路:此题容易,但上传后容易出现超时扣分,所以在判断是否为素数时不能从1~a-1如此遍历,可采用sqrt(a)的方式缩短运行时间。

#include<cstdio>#include<cmath>bool judge(int a){ int flag=1; int x=floor(sqrt(a)); int k=2; if(a==1) return 0; while(k<=x&&a%k!=0) k++; if(k<=x) return 0; else return 1;}int main(){ int N; int num=0; scanf("%d",&N); if(N==1||N==2) PRintf("0/n"); else{ for(int j=3;j<=N;j++){ if(judge(j)&&judge(j-2)) num++; } printf("%d/n",num); } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表