迴圈素數 Python

2021-07-29 17:48:18 字數 1336 閱讀 1450

來自網易雲課堂python程式設計第三週作業的一道題

題目內容:

數字197可以被稱為迴圈素數,因為197的三個數字迴圈移位後的數字:197,971,719均為素數。100以內這樣的數字包括13個,2,3,5,7,11,13,17,31,37,71,73,79,97。要求任意正整數n以內一共有多少個這樣的迴圈素數。

輸入格式:

乙個正整數n。

輸出格式:

n以內迴圈素數的數目。

輸入樣例:

100輸出樣例:

13時間限制:2000ms記憶體限制:32000kb

老師給出兩個資料,第一次提交乙個tle,乙個wa;第二次重寫了**,乙個ole,乙個ac

第二次**如下:

python

import math

n=raw_input()

m=len(n) #求出所需最大素數的位數

n=int(n)

prime=[z for z in range(2,10**m+1)]

deferatosthenes

(n):

#埃式篩素數

m=int(math.sqrt(n))

for i in range(2,m+1):

if i in prime:

for j in prime:

if j!=i and j%i==0:

prime.remove(j)

else:

continue

eratosthenes(10**m)

#輸入的是個m位數,就需要10的m次方內的素數表

defcircle_number

(n):

#列舉迴圈數

list=[n,]

m=len('%d' %n) #求出當前數的位數

for i in range(1,m): #m位數就有m-1個迴圈數

x=list[i-1]/(10**(m-1))+list[i-1]%(10**(m-1))*10

return list

cnt=0

for i in range(2,n+1):

list1=circle_number(i)

k=0#記錄list1中素數個數

for j in list1:

if j in prime:

k+=1

continue

else:

break

if k==len(list1): #全部是素數則加1

cnt+=1

print cnt

Python練習 迴圈素數

題目描述 數字197可以被稱為迴圈素數,因為197的三個數字迴圈移位後的數字 197,971,719均為素數。100以內這樣的數字包括13個,2,3,5,7,11,13,17,31,37,71,73,79,97。求任意正整數n以內一共有多少個這樣的迴圈素數 輸入格式 乙個正整數n 輸出格式 n以內迴...

Python演算法 迴圈素數

數字197可以被稱為迴圈素數。因為197的三個數字迴圈移位後的數字 197 971 719均為素數。100以內這樣的數字包括13個,2 3,5 7 11 13 17 31 37 71 73 79 97。求任意正整數n以內一共有多少個這樣的迴圈素數。import math deffun1 x for ...

迴圈 判斷素數

coding utf 8 判斷是否為素數 from math import sqrt num int input please input number s int sqrt num flag none for x in range 2,s 1 if num x 0 flag true break ...