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

B1007. 素数对猜想 (20)

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

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

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

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

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

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

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>//B1007bool isPRime(int n){ if(n<=1)return false;//1不是素数 int sqr=(int)sqrt(1.0*n);//要将整数转换为浮点数double,最快方法是乘1.0 for(int i=2;i<=sqr;i++){//<= 等于号非常关键,不要漏了 if(n%i==0)return false; } return true;}int main(){ int num=0;//输入的范围 int count=0;// 记录满足条件的个数 scanf("%d",&num);// for(int j=3;j<=num;++j){//测试打印出素数// if(isPrime(j))printf("%d ",j);// }//思路是判断奇数是否满足条件即可 for(int j=3;j<=num-2;j+=2){ if(isPrime(j)&&isPrime(j+2)){ count++; } } printf("%d",count); return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表