#include using namespace std; int Prime(int x) { if (x == 1 || x == 0) return 0; if (x == 2 || x == 3) return 1; if (x % 2 == 0 || x % 3 == 0) return 0; for (int i = 2; i <= x / 2; i++) { if (x % i == 0) return 0; } return 1; } int main() { freopen("D:/我的/大学/计算机类/1算法学习/CSP/筛法/P1217.txt", "w", stdout); int d1, d2, d3, d4, d5, palindrome; int k; int a, b; a = 5; b = 100000000; cout << "{"; //1 for (d1 = 1; d1 <= 9; d1 += 2) { palindrome = d1; if (a > palindrome * 10) break; if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1) cout << palindrome << ","; if (palindrome > b) return 0; } //2 if (a <= 11 && 11 <= b) cout << 11 << ","; //3 for (d1 = 1; d1 <= 9; d1 += 2) for (d2 = 0; d2 <= 9; d2++) { palindrome = 100 * d1 + 10 * d2 + d1; if (a > palindrome * 10) break; if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1) cout << palindrome << ","; if (palindrome > b) return 0; } //5 for (d1 = 1; d1 <= 9; d1 += 2) for (d2 = 0; d2 <= 9; d2++) for (d3 = 0; d3 <= 9; d3++) { palindrome = 10000 * d1 + 1000 * d2 + 100 * d3 + 10 * d2 + d1; if (a > palindrome * 10) break; if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1) cout << palindrome << ","; if (palindrome > b) return 0; } //7 for (d1 = 1; d1 <= 9; d1 += 2) for (d2 = 0; d2 <= 9; d2++) for (d3 = 0; d3 <= 9; d3++) for (d4 = 0; d4 <= 9; d4++) { palindrome = 1000000 * d1 + 100000 * d2 + 10000 * d3 + 1000 * d4 + 100 * d3 + 10 * d2 + d1; if (a > palindrome * 10) break; if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1) cout << palindrome << ","; if (palindrome > b) return 0; } //9 for (d1 = 1; d1 <= 9; d1 += 2) for (d2 = 0; d2 <= 9; d2++) for (d3 = 0; d3 <= 9; d3++) for (d4 = 0; d4 <= 9; d4++) for (d5 = 0; d5 <= 9; d5++) { palindrome = 100000000 * d1 + 10000000 * d2 + 1000000 * d3 + 100000 * d4 + 10000 * d5 + 1000 * d4 + 100 * d3 + 10 * d2 + d1; if (a > palindrome * 10) break; if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1) cout << palindrome << ","; if (palindrome > b) return 0; } cout << "}"; return 0; }