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

对于偶数位的整数,除了11以外,都不存在回文素数。即所有的4位整数、6位整数、8位整数等都不存在回文素数。
下面列出两位和三位整数中包含的所有回文素数。两位回文素数:11。三位回文素数:101,131,151,181,191,313,353,373,383,727,757,787,797,919,929。

# !/user/bin/env python
# -*- coding:utf-8 -*-
# author:Zfy  date:2021/7/5 18:59

import math


# 判断素数
def prime(n):
    for i in range(2, int(math.sqrt(n))):  # 开方转为整型
        if n % i == 0:  # 不是素数返回0
            return 0
    return 1  # 是素数返回1


def palindrome_prime():
    for i in range(0, 10):  # 穷举第一位
        for j in range(0, 10):  # 穷举第二位
            for k in range(0, 10):  # 穷举第三位
                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 prime(n):  # 若大于十且为回文数并且是素数
                    print(n, end=" ")


palindrome_prime()

在这里插入图片描述

《趣学Python算法100例》

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐