思路:这的上限为100000000, 直接对每个数判断要超时, 后来打表发现了最多到10000000有数, 这之后的数都不符合要求。所以上限调整为10000000
code:
#include <stdio.h> #include <string.h> #define N 10000002 using namespace std; int is_prime(int x) { int i = 0; for(i = 2; i*i<=x; i++) if(x%i == 0) return 0; return 1; } int judge(int x) { int i = 0, len = 0, num[12]; while(x) { num[len++] = x%10; x /= 10; } for(i = 0; i<=len/2; i++) if(num[i] != num[len-1-i]) return 0; return 1; } int main() { int i = 0, j = 0, m = 0, n = 0; scanf("%d %d", &m, &n); if(n>N) n = N; for(i = m; i<=n; i++) if(judge(i) && is_prime(i)) printf("%d\n", i); return 0; }