题目链接
思路分析
一开始想先用欧拉筛筛出所有素数之后在判断是否回文,结果超时。(标准结局) 后来看了下别人的思路,大部分是先自己创造回文数,再判断是否是素数。创造时也有技巧。因为存在一个定理:偶数位回文数除了11外均为合数。这样就可以只创造奇数位回文数来判断。
引理证明
观察偶数位的回文数,提取所有奇数位的数字,与提取所有偶数位的数字,正好是相反的顺序。因此,偶数位数和等于奇数位数和,从而差等于0,从而能被11整除,因此这个回文数一定不是素数。
代码
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
long long rev(long long a)
{