pat 素数对猜想

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

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

输入格式:

输入在一行给出正整数N

输出格式:

在一行中输出不超过N的满足猜想的素数对的个数。

输入样例:

20

输出样例:

4

#include <iostream>
#include <math.h>
using namespace std;
int a[100001];
int prime(int n)
{
    int k=sqrt(n);
    int i;
    if(n==0||n==1)
        return 0;
    for(i=2;i<=k;i++)
    {
        if(n%i==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int n;
    cin>>n;
    int i;
    int j=0;
    for(i=2;i<=n;i++)
    {
        if(prime(i))
            a[j++]=i;
        else;
    }
    int s=0;
    for(i=1;i<=j;i++)
    {
        if(a[i]-a[i-1]==2)
            s++;
    }
    cout<<s<<endl;
}

 

posted @ 2019-03-29 23:19  极限之旅  阅读(789)  评论(0编辑  收藏  举报