这道题我用枚举搜索,比如说要求出150到50000之间的所有Prime Palindromes,那么就枚举所有长度等于3和5的回文,然后判断这个回文是否为素数,注意一点,成都为偶数的回文一定能整除11,所以程度为偶数的回文只有11是素数,因此我们只需要判断长度为基数的回文。

那么如何枚举出长度为5的所有回文呢?

可以对回文的左边3个数字进行枚举,如左边3个数字为100,那么回文就是10001,然后左边3个数字为101,回文就是10101,等等,直到左边3个数字为999.对应的回文为99999

要注意一点,范围要求是100000000以下,如果出现100000000这个数字是不需要枚举长度为9的回文的,否则最后一个数据会超时!

如果能够增加判断一个数是否为素数的速度,那么程序速度将会快很多!

 

Code

 

 

posted on 2008-11-23 19:52  刘永辉  阅读(307)  评论(0)    收藏  举报