📅  最后修改于: 2023-12-03 15:09:39.790000             🧑  作者: Mango
本文将介绍如何用程序找出小于n的圆形素数。圆形素数是指一个素数,其每一位数字都可以通过将该数字的最高位移动到最低位来得到。
我们可以使用两个步骤来找出小于n的圆形素数。首先,我们首先需要检查我们的数字是否为素数。其次,我们需要检查数字是否为圆形素数。我们可以通过以下步骤来确定一个数字是否为圆形素数。
确定数字的位数并将其存储在count中
使用一个循环来生成每个数字的所有旋转版本
将数字的最高位移动到最低位,并将其存储在rotation中
如果rotation等于原始数字,则break
检查rotation是否为素数,如果不是,则break
如果循环完成,则该数字是一个圆形素数
我们可以将这个算法转换为代码的形式。
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def is_circular_prime(n):
count = len(str(n))
rotation = n
for i in range(count):
if not is_prime(rotation):
return False
rotation = int(str(rotation)[1:] + str(rotation)[0])
if rotation == n:
return True
return True
def circular_primes_below_n(n):
circular_primes = []
for i in range(2, n):
if is_circular_prime(i):
circular_primes.append(i)
return circular_primes
在此代码中,我们定义了3个函数。第一个函数is_prime用于检查数字是否为素数。第二个函数is_circular_prime用于检查数字是否为圆形素数。第三个函数circular_primes_below_n用于生成小于n的圆形素数。我们可以使用以下代码调用此函数。
print(circular_primes_below_n(100))
# Output: [2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79]
该程序返回小于100的圆形素数2、3、5、7、11、13、17、31、37、71、73和79的列表。
通过本篇文章,我们了解了如何使用Python代码来找出小于n的圆形素数。我们通过算法概述和代码实现的步骤来介绍了圆形素数的概念,并提供了一个代码示例,供程序员参考。