1.題目描述:點擊打開鏈接
2.解題思路:根據題意可知最大的素數在int范圍內,可以先算出1299709以內的所有素數,隨後二分查找n附近的素數的位置即可。
3.代碼:
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define N 1300000 int vis[N]; vectorprimes; void init() { int m = sqrt(N + 0.5); for (int i = 2; i <= m;i++) if (!vis[i]) for (int j = i*i; j < N; j += i) vis[j] = 1; for (int i = 2; i <= N;i++) if (!vis[i]) primes.push_back(i); } int main() { //freopen("test.txt", "r", stdin); int n; init(); while (scanf("%d", &n) != EOF&&n) { if (!vis[n])cout << 0 << endl; else { int L = 0, R = 100000; while (L < R) { int m = L + (R - L) / 2; if (primes[m] > n)R = m; else L = m + 1; } cout << primes[L] - primes[L - 1] << endl; } } return 0; }
scala入門-09 scala高階函數 我們做spar
[cpp] /* * 程序的版
Problem A Communist regime
門面模式(Facade):為子系統中的一組接口提供一個
功能很簡單,輸出一
一. 舉例 N年前: 計算機最先出來時,軟件和