python質(zhì)數(shù)(Primenumber),又稱(chēng)素?cái)?shù),指在大于1的自然數(shù)中,除了1和該數(shù)自身外,無(wú)法被其他自然數(shù)整除的數(shù)(也可定義為只有1與該數(shù)本身兩個(gè)因數(shù)的數(shù))。
那么想計(jì)算出一個(gè)隨機(jī)數(shù)是不是質(zhì)數(shù)用Python應(yīng)該怎么寫(xiě)呢?首先第一句話肯定是接受用戶(hù)輸入的數(shù)字:
n=int(input("pleaseenterthenumber:"))
接著要計(jì)算該數(shù)是不是質(zhì)數(shù),那么就要從2開(kāi)始一直除到該數(shù)之前的那個(gè)自然數(shù),很明顯是一個(gè)數(shù)字范圍:
foriinrange(2,n):
在循環(huán)體里面,每次循環(huán)當(dāng)然就是要判斷當(dāng)次除法是否是整除,這里可以使用求模運(yùn)算,也就是取余,當(dāng)余數(shù)為0時(shí),該數(shù)就不是質(zhì)數(shù):
ifn%i==0:
print("%disnotaprimenumber!"%n)
break
這個(gè)break意思就是當(dāng)該數(shù)不是質(zhì)數(shù)時(shí),就跳出整個(gè)循環(huán),該數(shù)就不是我們要的數(shù)字了。
那么,所有循環(huán)迭代都完成后還沒(méi)有找出能整除的情況的話,那么可以判斷該數(shù)就是一個(gè)質(zhì)數(shù),所以:
else:
print("%disaprimenumber!"%n)
那么此時(shí),所有代碼就寫(xiě)好了,不過(guò)為了看起來(lái)簡(jiǎn)單,沒(méi)有罩一層是否大于1的判斷,用戶(hù)輸入的數(shù)字默認(rèn)需要大于1:
n=int(input("pleaseenterthenumber:"))
foriinrange(2,n):
ifn%i==0:
print("%disnotaprimenumber!"%n)
break
else:
print("%disaprimenumber!"%n)
這里要細(xì)細(xì)品味這段代碼,else其實(shí)不是和if是一對(duì),而是和for并排的,我們常見(jiàn)的是if…else…或者if…elif…else諸如此類(lèi),但其實(shí)for也
可以和else搭配出現(xiàn),在這段代碼里,當(dāng)某一次遍歷結(jié)果余數(shù)為0后,break生效,那循環(huán)就結(jié)束了,那與之成對(duì)出現(xiàn)的else代碼也就不執(zhí)
行了;當(dāng)所有遍歷結(jié)束后沒(méi)有一次余數(shù)為0,那該循環(huán)就轉(zhuǎn)到else開(kāi)始執(zhí)行,打印輸出“該數(shù)為質(zhì)數(shù)”。
以上內(nèi)容為大家介紹了用python怎么實(shí)現(xiàn)判斷素?cái)?shù),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。