【PAT B1007】素数对猜想
程序员文章站
2024-03-15 16:02:42
...
1007 素数对猜想 (20 分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N
(<105),请计算不超过N
的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N
。
输出格式:
在一行中输出不超过N
的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
解题思路:
将到N的素数都存放在ans数组中,再在ans数组中判断一下就好;
AC代码:
#include<iostream>
#include<cmath>
using namespace std;
bool isprime(int n){
if(n == 1) return false;
for(int i = 2; i <= sqrt(n); i++){
if(n % i == 0){
return false;
}
}
return true;
}
int ans[10010];
int main(){
int n, k = 0, cnt = 0;
cin >> n;
for(int i = 2; i <= n; i++){
if(isprime(i)) ans[k++] = i;
}
for(int i = 0; i < k; i++){
if(ans[i + 1] - ans[i] == 2) cnt++;
}
cout << cnt;
return 0;
}
上一篇: LeetCode- 位1的个数