自学Python:寻找回文素数

作者: 小强聊成长 | 来源:发表于2021-12-29 12:44 被阅读0次

    什么是回文素数?

    回文素数指的是,对一个整数n从左向右和从右向左读其数值都相同且n为素数,则称整数n为回文素数。比如:11,101等就是回文素数。

    如何求出所有不超过1000的回文素数?

    可以采用的方法是穷举法。对1000以内的每一个整数n进行考察,判断n是否为回文数。如果n是回文数,再判断它是否为素数,对于既是回文数也是素数的整数n就是我们要求的回文素数,将其打印输出即可。

    下面直接上代码:

    ########################

    #先判断参数n是否为素数

    def fun(n):

        for i in range(2, (n-1)//2):

            if n % i == 0: # 偶数不是素数

                return 0

        return 1    # 返回1是素数

    if __name__=="__main__":

        print("1000以内的回文素数:")

        for i in range(0, 9+1):  # 穷举第一位

            for j in  range(0, 9+1):  # 穷举第二位

                for k in range(0, 9+1):  # 穷举第三位

                    n = i * 100 + j * 10 + k # 计算组成的整数

                    m = i + j * 10 + k * 100  # 计算对应的反序数

                    if i == 0 and j == 0: # 处理整数的前两位为0的情况

                        m = m // 100

                    elif i == 0:  # 处理整数的第一位为0的情况

                        m = m // 10

                    if n > 10 and n == m and fun(n): # 若大于10且为回文数则输出

                        print("%d\t" %n, end="")

    ########################

    执行结果如下:

    1000以内的回文素数:

    11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929

    ________________END______________

    相关文章

      网友评论

        本文标题:自学Python:寻找回文素数

        本文链接:https://www.haomeiwen.com/subject/fhkzfrtx.html