1007. 素数对猜想

题目截图:

 

思路:

  先生成素数表,然后验证每一对相邻且差为 2 的数是否为素数对。

 

代码:

 1 /*
 2     1007. 素数对猜想
 3 */
 4 
 5 #include <stdio.h>
 6 #include <string.h>
 7 #include <math.h>
 8 #include <stdlib.h>
 9 #include <time.h>
10 
11 #define maxn 100001
12 int p[maxn] = {0};                // 存储素数表 
13 
14 // 求素数表 
15 void findPrime(int N) {
16     int i, j;
17     for(i=2; i<=N; ++i) {
18         if(!p[i]) {                // 为素数 
19             // 标记倍数为非素数 
20             for(j=i+i; j<=N; j+=i) {
21                 p[j] = 1;
22             } 
23         }
24     }
25 }
26 
27 int main() {
28     int N, i, cnt=0;
29     scanf("%d", &N);
30     findPrime(N);                // 求素数表 
31     for(i=2; i<N-1; ++i) {
32         if(!p[i] && !p[i+2]) {    // 验证是否为素数对 
33             cnt++;
34         }
35     }
36     printf("%d", cnt);
37 
38     return 0;
39 }

 

posted @ 2018-02-25 16:09  Just_for_Myself  阅读(183)  评论(0编辑  收藏  举报