1 条题解
-
0
#include <bits/stdc++.h> using namespace std; bool isPrime(int x) { if (x < 2) return false; if (x == 2) return true; if (x % 2 == 0) return false; for (int i = 3; i * i <= x; i += 2) { if (x % i == 0) return false; } return true; } int main() { int a, b; cin >> a >> b; vector<int> ans; // 枚举回文数长度(1 位到 9 位) for (int L = 1; L <= 9; ++L) { int halfLen = (L + 1) / 2; int start = 1; for (int i = 1; i < halfLen; ++i) start *= 10; int end = start * 10 - 1; for (int i = start; i <= end; ++i) { string s = to_string(i); string rs = s; reverse(rs.begin(), rs.end()); string pal; if (L % 2 == 0) pal = s + rs; else pal = s + rs.substr(1); int num = stoi(pal); if (num < a || num > b) continue; if (isPrime(num)) { ans.push_back(num); } } } sort(ans.begin(), ans.end()); ans.erase(unique(ans.begin(), ans.end()), ans.end()); for (int x : ans) { cout << x << '\n'; } return 0; }
- 1
信息
- ID
- 74
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 103
- 已通过
- 13
- 上传者