日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Yes, Prime Minister 打表找规律-质数

發布時間:2025/3/19 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Yes, Prime Minister 打表找规律-质数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


Sample Input
10
-2
-1
0
1
2
3
4
5
6
7

Sample Output
6
4
3
2
1
1
2
1
2
1

// 打表 #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N = 2e7 + 1000;bool vis[N]; int primes[N]; int cnt;int x;// 線性篩 void get_primes(int n) {vis[0] = vis[1] = 1;for (int i = 2; i <= n; i ++ ){if (!vis[i]) primes[cnt ++ ] = i;for (int j = 0; primes[j] <= n / i; j ++ ){vis[primes[j] * i] = 1;if (i % primes[j] == 0) break;}} }// 判斷在x和len的情況下是否滿足情況 bool check(int len) {// 枚舉左邊界for (int l = x - len + 1; l <= x; l ++ ){int r = len + l - 1;int sum = (l + r) * (r - l + 1) / 2;if (sum <= 1) continue;if (!vis[sum]){cout << x << " " << len << endl;return true;}}return false; }int main() {ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);get_primes(N);for (int i = 1; i <= 10000; i ++ ){// 輸入的數 xx = i;// 枚舉區間長度,判斷x時最小lenfor (int len = 1; ; len ++ )if (check(len)){break;}}return 0; } #include <iostream> #include <algorithm>using namespace std;const int N = 2e7 + 1000;bool vis[N]; int primes[N]; int cnt;void get_primes(int n) {vis[0] = vis[1] = 1;for (int i = 2; i <= n; i ++ ){if (!vis[i]) primes[cnt ++ ] = i;for (int j = 0; primes[j] <= n / i; j ++ ){vis[primes[j] * i] = 1;if (i % primes[j] == 0) break;}} }int main() {ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);get_primes(N);int T;cin >> T;while (T -- ){int x;cin >> x;if (x > 0 && !vis[x]){cout << 1 << endl;continue;}if (x > 0 && (!vis[x + x + 1] || !vis[x + x - 1])){cout << 2 << endl;continue;}if (x < 0) x = -x;for (int i = x + 1; ; i ++ ){if (!vis[i]){cout << 2 * (i - 1) + 2 << endl;break;}if (!vis[i + i + 1]){cout << 2 * (i - 1) + 3 << endl;break;}}}return 0; }

總結

以上是生活随笔為你收集整理的Yes, Prime Minister 打表找规律-质数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。