Python编程算法【四十二】回文素数
【案例内容】
所谓回文素数指的是,对一个整数n从左向右和从右向左读其数值都相同且n为素数,则称整数n为回文素数。请求出所有不超过1000的回文素数。
【解题思路】
本题的解答思路:可设定两个函数,分别处理相应的操作。第一个函数用来判断一个数是否素数,此函数已在之前的案例中写过多次,这里不再赘述。
第二个函数是用来判断一个数是否为回文数,针对本题来说,常规做法是将一个数的每一位,分别取出来,如果是三位数,就把百位当个位,个位当百位,重新组合成一个新的数,然后判断这个新的数是否与原数相等,如果是那么该数就是回文数。两位数以此类推。另一种”非常规“做法,就是先把该数转成str(字符型),然后直接就可以倒序,反转后无需再重新转回int(数值型),即可判断原数与倒序后的数,是否相等,如果相同就是回文数。
最后,同时用这两个函数判断,如果均为True,则表示该数是回文素数。具体代码如下:
【Python代码】


注意两个函数的返回值是bool(布尔值),用for循环时可直接从11开始,提高效率。循环时用if语句结合两个函数,即可求出1000以内的回文素数。