題目描述:
數字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解題思路:
先寫出能將任意乙個數字的所有迴圈移位輸出的程式
然而提交之後發現第一組資料會超時,只有第二組資料是對的。然後發現只要乙個數的所有數字中包含0,2,4,5,6,8這幾個數字的任意乙個,那麼總有一種迴圈移是偶數或者能被5整除的,因此在迴圈移位之前可以先判斷數字中是否含有這幾個數字中的任意乙個。
下面為改進之後的**,就可以快快樂樂地通過啦!
python**:
import mathl=[
'0',
'2',
'4',
'5',
'6',
'8']
defjudgenum
(x):
if x==
1or x==0:
return
false
else
:for i in
range(2
,int
(math.sqrt(x))+
1):if x%i==0:
return
false
return
true
defmorejudge
(x):
s=str(x)
for i in s:
if i in l:
return
false
ms=""for i in
range
(len
(s))
: ms+=s[i]
if i==
len(s)-1
:for j in
range
(i):
ms+=s[j]
else
: ct=i+
1for j in
range
(len
(s)-1)
:if ct>=
len(s)
: ct=
0 ms+=s[ct]
ct+=
1if judgenum(
int(ms))!=
true
:return
false
ms=""return
true
n=int
(input()
)cnt=
0for i in
range
(n):
if i<=10:
if judgenum(i)
: cnt+=
1else
:if judgenum(i)
:if morejudge(i)
: cnt+=
1print
(cnt)
迴圈素數 Python
來自網易雲課堂python程式設計第三週作業的一道題 題目內容 數字197可以被稱為迴圈素數,因為197的三個數字迴圈移位後的數字 197,971,719均為素數。100以內這樣的數字包括13個,2,3,5,7,11,13,17,31,37,71,73,79,97。要求任意正整數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 ...
練習題 統計迴圈素數
題目內容 數字197可以被稱為迴圈素數,因為197的三個數字迴圈移位後的數字 197,971,719均為素數。100以內這樣的數字包括13個,2,3,5,7,11,13,17,31,37,71,73,79,97。要求任意正整數n以內一共有多少個這樣的迴圈素數。輸入格式 乙個正整數n。輸出格式 n以內...