题意及思路

  • 题意:略。
  • 思路:步骤,先判断是否为回文数,再判断是否为素数。相关判定见代码。
  • 注意点:个人觉得这个判断回文数的函数的思想,😂值得学习(之前做过一道回文数题,看提交代码中发现了这种)。😃另外,需要注意的是,一千万至一亿这段区间是没有回文素数的,需要去除,否则很容易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;
}