拆解N的5位質數
# 獲得使用者輸入數字N,計算並輸出從N開始的5個質數,單行輸出,質數間用逗號,分割。
# 注意:需要考慮使用者輸入的數字N可能是浮點數,應對輸入取整數;最後一個輸出後不用逗號。
# 幾個功能塊
# 判斷數字是否小於2
# 判斷是否為質數,質數為True
# 判斷是否為整數
# 列印數字,並加上逗號
def prime(N):
if N < 2: # 判斷數字是為小於2,如果為2,則返回錯誤
return False
else:
n = int(pow(N, 0.5) +1) # 求取平方根,減少運算次數。
for i in range(2,n): # 判斷是否為質數。
if N %i ==0:
return False
else: # 如果for迴圈執行完畢,則返回True。
return True
num =eval(input()) # 輸入數字
if num != int(num): # 判斷是否為整數,如果不是,則+1
num =int(num)+1
else:
num = int(num)
count =5
while count >0:
if prime(num): # if如果為True,則為質數,執行下面語句
if count >1: # 如果為前4個數,則在後面加逗號。
print(num, end=',')
else:
print(num) # 如果是第五個數,則不加逗號。
count -=1
num +=1
# 第一行`if N ==1:`錯誤,應為'if N < 2:'
# 第26行到第32行,判斷列印資料錯誤,
# if Prime(num) ==False:
# num +=1
# Prime(Num)
# else:
# print(num, end=",")
# count -=1
# if count >1:
# print(num)
# 結構功能不清。
# 第21行 `num +=+1`錯誤,應為`num =int(num)+1
# 第17,18行錯誤,else應該和for處於同一層級。
#
# for else語句應用相當精妙,當for迴圈正常完成時,就執行else語句。
相關文章
- 求n以內的所有質素
- 輸入N,再輸入N個數,N
- 計算2的N次冪n 可輸入,n為自然數
- 小於n的最大數
- n個骰子的點數
- 找出N以內的偶數
- 指標-n個數的排序指標排序
- 資訊學奧賽一本通1099:第n小的質數 視訊題解
- 給定一個n,輸出從1到n的整數
- 3069 求n個整數的和
- 質數判斷、質因子分解、質數篩
- 統計整數區間[N,M](N,M<100000)中所以非偶數的合數個數,並輸出這個數。
- 質數的判斷
- JZ-074-n 個骰子的點數
- 2_n數最高層數與對應解數的證明
- 杭電OJ 2028求n個數的最小公倍數
- 對於質數的研究
- 數學的新物質
- 『數學的新物質』
- 演算法 1~n中1的次數演算法
- linux echo命令的-n、-e兩個引數Linux
- 質數與約數
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(28):n=4
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(29):n=27
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(27):n=1
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(26):n=3
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(19):n=2
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(20):n=26
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(22):n=28
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(23):n=26
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(24):n=5
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(21):n=26
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(25):n=28
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(18):n=24
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(17):n=6
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(16):n=24
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(15):n=2
- 9個連續質數2,3,5,7,11,13,17,19,23的三層連環(12):n=2