自学Python:寻找可逆素数

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

    可逆素数是什么?

    可逆素数是指一个素数将其各位数字的顺序倒过来构成的反序数也是素数。

    请从小到大输出所有4位数的可逆素数。

    下面直接上代码:

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

    import math

    # 判断素数

    def fun(n):

        if n <= 1:

            return 0;    # n<1时显然不是素数,故返回0

        if n == 2:

            return 1      # n=2,是素数,返回1

        if n % 2 == 0:

            return 0    # n是偶数,不是素数,返回0

        for i in range(3, int(math.sqrt(n) + 1)):

            if n % i == 0:

                return 0      # n是奇数,不是素数,返回0

            i += 2

        return 1  # n是除2以外的素数,返回1

    if __name__=="__main__":

        count = 0  # 计数器

        # 穷举法

        for a in range(1, 9+1): # 千位

            for b in range(0, 9+1):  # 百位

                for c in range(0, 9+1):  # 十位

                    for d in range(1, 9+1):  # 个位

                        if fun(a*1000+b*100+c*10+d):# 判断4位整数是否为素数

                            # 判断4位逆序的整数是否为素数

                            if fun(a+b*10+c*100+d*1000):

                                if count % 15 == 0:  # 每15个数就换行

                                    print()

                                print("%d  " %(a*1000+b*100+c*10+d), end="")

                                count += 1

        print("\n4位可逆素数共有%d个" %count)

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

    执行结果如下:

    1009 1021 1031 1033 1061 1069 1091 1097 1103 1109 1151 1153 1181 1193 1201

    1213  1217  1223  1229  1231  1237  1249  1259  1279  1283  1301  1321  1381  1399  1409 

    1429  1439  1453  1471  1487  1499  1511  1523  1559  1583  1597  1601  1619  1657  1669 

    1723  1733  1741  1753  1789  1811  1831  1847  1867  1879  1901  1913  1933  1949  1979 

    3011  3019  3023  3049  3067  3083  3089  3109  3121  3163  3169  3191  3203  3221  3251 

    3257  3271  3299  3301  3319  3343  3347  3359  3371  3373  3389  3391  3407  3433  3463 

    3467  3469  3511  3527  3541  3571  3583  3613  3643  3697  3719  3733  3767  3803  3821 

    3851  3853  3889  3911  3917  3929  7027  7043  7057  7121  7177  7187  7193  7207  7219 

    7229  7253  7297  7321  7349  7433  7457  7459  7481  7507  7523  7529  7547  7561  7577 

    7589  7603  7643  7649  7673  7681  7687  7699  7717  7757  7817  7841  7867  7879  7901 

    7927  7949  7951  7963  9001  9011  9013  9029  9041  9103  9127  9133  9161  9173  9209 

    9221  9227  9241  9257  9293  9341  9349  9403  9421  9437  9439  9467  9479  9491  9497 

    9521  9533  9547  9551  9601  9613  9643  9661  9679  9721  9749  9769  9781  9787  9791 

    9803  9833  9857  9871  9883  9923  9931  9941  9967 

    4位可逆素数共有204个

    ________________END______________

    相关文章

      网友评论

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

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