可以把所以回文数求出来,回文数的数量是不太多的,然后判断质数即可
#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
#include<numeric>
#include<unordered_map>
#include<numeric>
#include<algorithm>
#include<cstdint>
#include<map>
#include<cmath>
#include<set>
int main()
{
std::ios::sync_with_stdio(0);
std::cin.tie(0);
int a,b;
std::set<std::string> p;
for(char i = '0';i <= '9';i++)
{
std::string s;
s = i;
p.insert(s);
s = i + s;
p.insert(s);
}
// for(auto s : p)std::cout<<"S:"<<s<<"\n";
for(int j = 0;j < 4;j++)
{
std::set<std::string> tmp;
for(char i = '0';i <= '9';i++)
{
for(auto s : p)
if(s.size() <= 6)
tmp.insert(i + s + i);
}
for(auto s : tmp)p.insert(s);
}
std::set<int> ans;
for(auto s : p)
{
int sum = 0;
for(char c : s)sum = sum * 10 + c - '0';
ans.insert(sum);
}
std::cin>>a>>b;
auto check = [](int x)
{
for(int i = 2;i <= sqrt(x);i++)
if(x % i == 0)return 0;
return 1;
};
for(auto i : ans)
{
if(i >= a && i <= b && check(i))std::cout<<i<<"\n";
}
return 0;
}