poj Prime Gap

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<cstring>
 5 #include<string>
 6 #include<queue>
 7 #include<algorithm>
 8 #include<map>
 9 #include<iomanip>
10 #include<climits>
11 #include<string.h>
12 #include<numeric>
13 #include<cmath>
14 #include<stdlib.h>
15 #include<vector>
16 #include<stack>
17 #include<set>
18 #define INF 1e7
19 #define MAXN 100010
20 #define maxn 1000010
21 #define Mod 1000007
22 #define N 1299800
23 using namespace std;
24 typedef long long LL;
25 
26 int prime[N];
27 int vis[N];
28 void run()
29 {
30     int k = 1;
31     for (LL i = 2; i <= N; ++i)
32         if (!vis[i]) {
33             prime[k++] = i;
34             for (LL j = i*i; j < N; j += i)
35                 vis[j] = 1;
36         }
37     /*for (int i = 1; i < 1300; ++i)
38         cout << prime[i] << " ";
39     cout << endl;*/
40 }
41 
42 int n;
43 int ans = 0;
44 
45 int main()
46 {
47     run();
48     while (cin >> n,n) {
49         ans = 2;
50         if (vis[n] == 0)
51             ans = 0;
52         else {
53             int tmp = n;
54             while (--tmp) 
55                 if (vis[tmp]) 
56                     ans++;
57                 else break;
58             tmp = n;
59             while (++tmp)
60                 if (vis[tmp])
61                     ans++;
62                 else break;
63         }
64         cout << ans << endl;
65     }
66     return 0;
67 }
原文地址:https://www.cnblogs.com/usedrosee/p/4369627.html