警示后人
查看原帖
警示后人
390033
_caiji_楼主2021/2/16 19:21

如果您 TLE 了,请看下面:

  1. 使用 O(n)O(\sqrt{n}) 的判质数方法,就是
for(int i=2;i<=sqrt(n);i++)

这样会快的,相信我。

  1. 调换判断顺序,就是把
if(zhishu(i)&&huiwen(i))

改成

if(huiwen(i)&&zhishu(i))

因为质数的判断时间比回文的慢,先判断回文。

  1. 加入下面这句:
if(r>10000000) r=10000000;

可以证明,除 1111 外没有偶数位的回文质数,那么 [10000000,100000000][10000000,100000000] 这个区间根本不用枚举,直接用这种方式省掉。

  1. 如果仍未通过,请考虑卡常或打表。
2021/2/16 19:21
加载中...