📜  如何在 python 3 中创建回文素数 - Python (1)

📅  最后修改于: 2023-12-03 15:38:23.266000             🧑  作者: Mango

如何在 Python 3 中创建回文素数

在 Python 中创建回文素数并不困难。回文数是指正反两个方向读都相同的数字,而素数是指只有1和本身两个约数的数。因此,回文素数是既是素数又是回文数的数字。

下面是一个简单的 Python 程序,用于生成指定数量的回文素数。

def is_prime(n):
    """判断一个数是否为素数"""
    if n <= 1:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

def is_palindrome(n):
    """判断一个数是否为回文数"""
    return str(n) == str(n)[::-1]

def get_palindrome_primes(n):
    """生成n个回文素数"""
    palindrome_primes = []
    i = 0
    while len(palindrome_primes) < n:
        if is_palindrome(i) and is_prime(i):
            palindrome_primes.append(i)
        i += 1
    return palindrome_primes

在上面的程序中,我们定义了三个函数。

  • is_prime(n):用于判断一个数是否为素数。
  • is_palindrome(n):用于判断一个数是否为回文数。
  • get_palindrome_primes(n):用于生成n个回文素数。

其中,is_prime()函数使用了常见的判断素数的方法——从2到根号n进行枚举,如果n能被其中的任意一个数整除,则n不是素数。is_palindrome()函数则使用了Python的语法糖——字符串反转(即str(n)[::-1]),来判断一个数是否为回文数。

最终我们利用上述两个函数,循环判断数字i是否为回文素数,遇到符合要求的就将其添加到结果列表中并计数,直到生成n个回文素数为止。

下面是一个使用示例:

palindrome_primes = get_palindrome_primes(10)
print(palindrome_primes)

输出结果为:[2, 3, 5, 7, 11, 101, 131, 151, 181, 191]

以上就是在 Python 3 中创建回文素数的方法。