PAT1007 素数对猜想
题目
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。
输入格式
输入在一行给出正整数N。
输出格式
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例
输出样例
思路
水题,判断是否素数,记录上次结果,差为2,计数+1。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #include <iostream> using namespace std;
bool isPrime(int num) { if(num < 2) { return false; } for(int i = 2; i * i <= num; i++) { if(num % i == 0) return false; } return true; }
int main(int argc, char const *argv[]) { int primeNum, primeS = 2, primeE = 2, count = 0; cin >> primeNum; for(int i = 2 ; i <= primeNum; i++) { if(isPrime(i)) { primeE = i; if(primeE - primeS == 2) { count++; } primeS = primeE; } } cout << count;
return 0; }
|