题意及思路
- 题意:略。
- 思路:步骤,先判断是否为回文数,再判断是否为素数。相关判定见代码。
- 注意点:个人觉得这个判断回文数的函数的思想,😂值得学习(之前做过一道回文数题,看提交代码中发现了这种)。😃另外,需要注意的是,一千万至一亿这段区间是没有回文素数的,需要去除,否则很容易TLE。🙂还有就是,回文素数一定不为偶数,换言之,偶数就不可能符合题目要求,这样又可以去掉一半数据。
代码
#include<bits/stdc++.h>
using namespace std;
bool isP(int x){ // 最简单的判定素数
for(int i=2;i*i<=x;i++){
if(x%i==0) return false;
}
return true;
}
bool isH(int x){ // 判定回文数
int t = x,ans = 0;
while(t){
ans = ans*10 + t%10;
t /= 10;
}
return ans==x;
}
int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
int a,b;
cin >> a >> b;
a = (a%2==0)?a+1:a;
b = (b>10000000)?10000000:b;
for(int x=a;x<=b;x+=2){
if(isH(x) && isP(x))
cout << x << endl;
}
return 0;
}