思路:这的上限为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;
}