Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
111667 汤奕硕 寻找绝对素数 C++ Accepted 1 MS 300 KB 1437 2025-03-03 19:13:52

Tests(10/10):


Code:

#include <iostream> #include <vector> using namespace std; bool is_prime_trial(int x) { if (x <= 1) return false; if (x == 2 || x == 3) 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 reverse_num(int p) { int rev = 0; while (p > 0) { rev = rev * 10 + p % 10; p /= 10; } return rev; } int main() { int M, N; cin >> M >> N; vector<bool> is_prime(N + 1, true); is_prime[0] = is_prime[1] = false; for (int i = 2; i * i <= N; ++i) { if (is_prime[i]) { for (int j = i * i; j <= N; j += i) { is_prime[j] = false; } } } vector<int> res; for (int p = M; p <= N; ++p) { if (!is_prime[p]) continue; int rev_p = reverse_num(p); bool rev_is_prime = false; if (rev_p <= N) { rev_is_prime = is_prime[rev_p]; } else { rev_is_prime = is_prime_trial(rev_p); } if (rev_is_prime) { res.push_back(p); } } if (res.empty()) { cout << "No" << endl; } else { for (size_t i = 0; i < res.size(); ++i) { if (i > 0) cout << ","; cout << res[i]; } cout << endl; } return 0; }