https://www.luogu.com.cn/problem/P1217#submit
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using ll = long long int;
using namespace std;
int main()
{
ll a , b ;
cin >> a >> b ;
for(ll i = a ; i <= b ; i++)
//第三处优化回文数比质数少 先判断是不是回文 再判断质数
{
int cnt = 0;
ll rever = 0;
ll temp = i;
while(temp!= 0)
{
cnt = temp%10;
rever = rever*10 + cnt;
temp /=10;
}
if(rever == i)
{
bool is_prime = true;
for(ll j = 2 ; j <= i/j ; j++)//第一处优化 判断质数时
{
if(i%j == 0)
{
is_prime = false;
break; //第二处优化 不是质数直接退循环
}
}
if(is_prime)
cout << i << endl;
}
}
return 0;
}