码迷,mamicode.com
首页 > 其他好文 > 详细

PAT乙级1007

时间:2019-03-25 23:32:47      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:base   minus   eset   break   ble   return   超过   problem   存在   

1007 素数对猜想 (20 分)

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

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

输入格式:

输入在一行给出正整数N

输出格式:

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

输入样例:

20

输出样例:

4

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int check[100005];
 4 int prime[100005];
 5 int tot,ans;
 6 int main()
 7 {
 8     for(int i=2;i<100002;i++)
 9     {
10         if(!check[i])
11             prime[tot++]=i;
12         for(int j=0;j<tot;j++)
13         {
14             if(prime[j]*i>100000)
15                 break;
16             check[i*prime[j]]=1;
17             if(i%prime[j]==0)
18                 break;
19         }
20     }
21     int n;
22     cin>>n;
23     for(int i=1;prime[i]<=n;i++)
24     {
25         if(prime[i]-prime[i-1]==2)ans++;
26     }
27     cout<<ans;
28     return 0;
29 }

利用欧式筛找素数

PAT乙级1007

标签:base   minus   eset   break   ble   return   超过   problem   存在   

原文地址:https://www.cnblogs.com/zuiaimiusi/p/10597435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!