PAT乙级1007
Posted zuiaimiusi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT乙级1007相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章