2.素数对猜想

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

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

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

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

输入样例:

20
输出样例:

4

解题思路:
1.找到小于N的所有素数存再数组中
2.计算相邻素数之差,并累计次数

代码:

#include
#include
#include
int isPrime(int num);
int main(){
int num,j=0,x,i,cout=0,f;
int n[10000];
scanf("%d",&num);
for(i=2;i<=num;i++)
{
if(isPrime(i)){
n[j]=i;
j++;
}
}
for(i=j;i>=0;i--){
    f = n[i]-n[i-1]; 
    if(f == 2 )
    cout++;
    }
printf("%d",cout);
}

 int isPrime(int num){
     int flag = 1;
    int temp = sqrt(num);
    int i;
    for(i = 2; i <= temp; i++){
        if(num % i == 0) flag = 0;
     }
    return flag;
 }

你可能感兴趣的:(算法)