Run ID:66973
提交时间:2024-03-12 19:25:31
#include <iostream> #include <cmath> #include <vector> #include <algorithm> bool is_prime(int number) { if (number <= 1) return false; if (number <= 3) return true; if (number % 2 == 0 || number % 3 == 0) return false; for (int i = 5; i * i <= number; i += 6) if (number % i == 0 || number % (i + 2) == 0) return false; return true; } int reverse_number(int number) { int reversed = 0; while (number > 0) { reversed = reversed * 10 + number % 10; number /= 10; } return reversed; } std::vector<int> find_emirps(int M, int N) { std::vector<int> emirps; for (int i = M; i <= N; ++i) { if (is_prime(i)) { int reversed = reverse_number(i); if (i != reversed && is_prime(reversed)) { emirps.push_back(i); } } } return emirps; } int main() { int M, N; std::cin >> M >> N; std::vector<int> emirps = find_emirps(M, N); if (emirps.empty()) { std::cout << "No"; } else { for (size_t i = 0; i < emirps.size(); ++i) { if (i > 0) { std::cout << ","; } std::cout << emirps[i]; } } std::cout << std::endl; return 0; }