如果您 TLE 了,请看下面:
- 使用 O(n) 的判质数方法,就是
for(int i=2;i<=sqrt(n);i++)
这样会快的,相信我。
- 调换判断顺序,就是把
if(zhishu(i)&&huiwen(i))
改成
if(huiwen(i)&&zhishu(i))
因为质数的判断时间比回文的慢,先判断回文。
- 加入下面这句:
if(r>10000000) r=10000000;
可以证明,除 11 外没有偶数位的回文质数,那么 [10000000,100000000] 这个区间根本不用枚举,直接用这种方式省掉。
- 如果仍未通过,请考虑卡常或打表。