私はプロジェクト オイラー問題 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 のように循環しているかどうかを正しく識別しますが、119 が素数ではないため、循環ではない 191 などの一部の非循環素数も循環として識別します。