📅  最后修改于: 2023-12-03 15:38:23.266000             🧑  作者: Mango
在 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 中创建回文素数的方法。