我一直在尝试解决项目欧拉问题 35,并且需要创建一个函数来告诉我整数是否是循环素数。我有一个标准isprime
函数和一个给出数字旋转列表的函数。我的旋转代码和iscircularprime
代码在这里:
def rotate(n):
rotlist = []
m = str(n)
counter = 0
while counter < len(str(n)):
m = m[1:] + m[0]
rotlist.append(int(m))
counter += 1
return rotlist
def iscircularprime(n):
np = [0,2,4,5,6,8]
y = str(n)
for j in y:
if int(j) in np:
return False
if isprime(n)==False:
return False
m = rotate(n)
for i in m:
if isprime(i)==True:
return True
else:
return False
我没有包括我的isprime
功能,因为它是相当标准的。我的函数将正确识别素数是否为圆形,例如 197,但也会将一些非圆形素数识别为圆形,例如 191,它不是圆形的,因为 119 不是素数。