让我们定义dn 为:dn =p(n+1)−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<105 ),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。输入样例:
20输出样例:
4
浅析
先判断素数,再求所给范围内符合要求的素数对。
代码
#includeusing namespace std; //判断素数 bool check(int x) { for (int i = 2; i <= x / i; i++) { if (x % i == 0) { return false; } } return true; } int main(void) { int n; cin >> n; int ans = 0; for (int i = 2; i <= n; i++) //相邻两个相差为2素数,且都小于所给的数 if (check(i) && check(i + 2) && (i + 2) <= n) { ans++; } cout << ans; return 0; }



