让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
提交代码:
1 #include <stdio.h> 2 #include <math.h> 3 4 int isPrime(unsigned int num) 5 { 6 int i, s; 7 8 s = sqrt(num); 9 for(i = 2; i <= s; i++) 10 if(num % i == 0) 11 return 0; 12 13 return 1; 14 } 15 16 void test(void) 17 { 18 int x, num; 19 int cnt = 0; 20 21 scanf("%d", &num); 22 x = 2; 23 24 while(x <= num-2) 25 { 26 if(isPrime(x) && isPrime(x+2)) 27 { 28 cnt += 1; 29 } 30 x += 1; 31 } 32 printf("%d", cnt); 33 } 34 35 int main(void) 36 { 37 test(); 38 return 0; 39 }