codevs 2046 孪生素数 3 (水题日常)

时间限制: 1 s
 空间限制: 32000 KB
 题目等级 : 黄金 Gold
题目描述 Description

在质数的大家庭中,大小之差不超过2的两个质数称它俩为一对孪生素数,如2和3、3和5、17和19等等。请你统计一下,在不大于自然数N的质数中,孪生素数的对数。

输入描述 Input Description

只有一行,一个自然数N。

输出描述 Output Description

只有一行,一个整数,表示N以内孪生素数的对数。

样例输入 Sample Input

20

样例输出 Sample Output

5

数据范围及提示 Data Size & Hint

N<=10^6

 

屠龙宝刀点击就送

#include<cstdio>

using namespace std;
typedef long long LL;
LL a[10001],x,n;
int tot=1;

bool pd(LL x)
{
    for(int i=2;i*i<=x;i++)
    if(x%i==0) return 0;
    return 1;
}
int main()
{
    scanf("%lld",&x);
    if(x<3)tot=0;
    for(LL i=3;i<=x-2;i+=2)
    {
         if(pd(i)&&pd(i+2))
         tot++;
    }
    printf("%d\n",tot);
    return 0;
}

 

posted @ 2017-04-09 11:03  杀猪状元  阅读(359)  评论(0编辑  收藏  举报