下面是一個(gè) Python 程序,可以實(shí)現(xiàn)函數(shù) Prme(n),接收正整數(shù) n 作為參數(shù),判斷該正整數(shù)是否為素?cái)?shù)。
為瓊海等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及瓊海網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、瓊海網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
在這個(gè)程序中,我們定義了函數(shù) Prme(n),接收一個(gè)正整數(shù) n 作為參數(shù)。首先,我們判斷 n 是否小于 2,如果是,則返回 False。然后,我們判斷 n 是否等于 2,如果是,則返回 True。最后,我們使用一個(gè) for 循環(huán)從 2 到 n-1 枚舉所有的數(shù),如果 n 能夠被 i 整除,則返回 False。否則,返回 True。
案例如下:
def showSu():
a = [2, 4, 5, 6, 7, 8, 3, 11, 13]
b = 0
for i in range(0, len(a)):
if a[i] 1:
for j in range(2, a[i]):
if a[i] % j == 0:
break
else:
b += 1
print(a[i])
print("素?cái)?shù)個(gè)數(shù):%d"%b)
showSu()
結(jié)果如下:
2
5
7
3
11
13
素?cái)?shù)個(gè)數(shù):6
希望我的回答可以幫助你!
判斷是否為素?cái)?shù)的方法:
1、利用for循環(huán)和break語(yǔ)句,代碼為【for i in range(2, k+2):if m % i == 0:break】。
2、利用while循環(huán)和bool變量。
python使用技巧
如果在異常處理程序或 finally 塊中引發(fā)異常,默認(rèn)情況下,異常機(jī)制會(huì)隱式工作會(huì)將先前的異常附加為新異常的 __context__ 屬性。這就是 Python 默認(rèn)開(kāi)啟的自動(dòng)關(guān)聯(lián)異常上下文。
如果你想自己控制這個(gè)上下文,可以加個(gè) from 關(guān)鍵字( from 語(yǔ)法會(huì)有個(gè)限制,就是第二個(gè)表達(dá)式必須是另一個(gè)異常類或?qū)嵗#?,?lái)表明你的新異常是直接由哪個(gè)異常引起的。
解題思路:需要實(shí)現(xiàn)兩個(gè)函數(shù),一個(gè)是判斷數(shù)字是否是素?cái)?shù);一個(gè)是求和函數(shù)。
實(shí)現(xiàn)函數(shù),判斷是否是素?cái)?shù),is_prime,具體代碼如下:
def is_prime(num):
"""
判斷是否是素?cái)?shù).
:param num:
:return:
"""
result = True
# 質(zhì)數(shù)大于 1
if num 1:
? # 查看因子
? for i in range(2, num):
? ? ? if (num % i) == 0:
? ? ? ? ? result = False
? ? ? ? ? break
? else:
? ? ? result = True
# 如果輸入的數(shù)字小于或等于 1,不是質(zhì)數(shù)
else:
? result = False
return result
實(shí)現(xiàn)函數(shù),計(jì)算數(shù)字start到end之間的所有素?cái)?shù)之和,sum,具體代碼如下:
def sum(start, end):
"""
求閉區(qū)間[start, end]之間的素?cái)?shù)之和.
:param start:
:param end:
:return:? ? """
result = 0;
for i in range(start, end + 1):
? if is_prime(i):
? ? ? print(i)
? ? ? result = result + i
return result
在main函數(shù)中調(diào)用求和,代碼如下:
if __name__ == '__main__':
num = 8
print(is_prime(num))
num = 5
print(is_prime(num))
print(sum(1, 5))
完整 代碼如下:
具體步驟如下:
1、打開(kāi)pycharm,點(diǎn)擊file,點(diǎn)擊new,新建一個(gè)空白的pyrthon文件:
2、這里開(kāi)始編寫(xiě)判斷素?cái)?shù)的代碼,判斷素?cái)?shù)的上限最準(zhǔn)確的應(yīng)該使用平方根取整加一,此處用到兩層循環(huán),第一層遍歷0到100的數(shù),第二層循環(huán)判斷滿足條件的素?cái)?shù)。這里有一個(gè)else要注意是和for對(duì)齊而不是if對(duì)齊,如果和if對(duì)齊只要不能被2整除就會(huì)被添加到列表中了,而且會(huì)多次添加:
3、右鍵點(diǎn)擊鼠標(biāo),點(diǎn)擊“run?demo”,運(yùn)行編寫(xiě)好的python文件,在下方的控制臺(tái)就可以看見(jiàn)輸出后結(jié)果: