1007 素数对猜想
题目
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。
输入格式
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例:
20
输出样例:
4
解析
先将10^5以内的素数全部求出来放在数组中,然后遍历数组找到差为2的则数量+1答案
#include <iostream>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
int a[10000];
bool isPrime(int b){
for(int i=2;i<=sqrt(b);i++){
if(b%i == 0){
return false;
}
}
return true;
}
int main(){
int N;
cin>>N;
int k=0;
for(int i=2;i<=N;i++){
if(isPrime(i)){
a[k++] = i;
}
}
int num = 0;
for(int i=1;i<k;i++){
if(a[i] - a[i-1] == 2){
num++;
}
}
cout << num <<endl;
}

浙公网安备 33010602011771号