让我们定义 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;}新闻热点
疑难解答