1007. 素数对猜想 (20)
时间限制
400 ms
内存限制
32000 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:20
输出样例:
4
#include<iostream> #include <cmath> #include <vector> #include<cstring> #define MAXSIZE 100000 using namespace std; int prime[MAXSIZE]; int main() { memset(prime,0,MAXSIZE); int N,i,j; int k=0; vector<int> vec; vector<int>::iterator it1,it2; int m=(int)(sqrt(double(MAXSIZE))+0.5); cin>>N; for ( i=2;i<m;i++) for ( j=i*i;j<MAXSIZE;j+=i) prime[j]=1; for( i=2;i<=N;i++) { if (!prime[i]) vec.push_back(i); } for (it1=vec.begin(),it2=it1+1;it2!=vec.end();it1++,it2++) if (*it2-*it1 ==2) k++; cout<<k<<endl; // system("pause"); return 0; }