1007. 素数对猜想
让我们定义 dn 为:dn = pn+1 – pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数 对猜想”认为“存在⽆穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满⾜猜想的素数对的个数。
输⼊格式: 每个测试输⼊包含1个测试⽤例,给出正整数N。
输出格式: 每个测试⽤例的输出占⼀⾏,不超过N的满⾜猜想的素数对的个数。
输⼊样例: 20
输出样例: 4
分析:
先定义一个判断是否为素数的函数isPrime()。再在循环中控制 i 从2到n,当i和i+2为素数,且i+2小于等于n时,sum++。
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n){
if(n<=0||n==1) return false;
if(n==2) return true;
for(int i=2;i*i<=n;i++){
if(n%i==0) return false;
}
return true;
}
int main(){
int n;cin>>n;
int sum=0;
for(int i=2;i<=n;i++){
if(isPrime(i)&&isPrime(i+2)&&(i+2)<=n)
sum++;
}
cout<<sum;
return 0;
}