溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python判斷一個(gè)數(shù)是不是素?cái)?shù)的方法

發(fā)布時(shí)間:2020-08-10 13:58:16 來源:億速云 閱讀:208 作者:小新 欄目:編程語言

這篇文章主要介紹了python判斷一個(gè)數(shù)是不是素?cái)?shù)的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

先來看下什么是質(zhì)數(shù):

質(zhì)數(shù)(Prime number),又稱素?cái)?shù),指在大于1的自然數(shù)中,除了1和該數(shù)自身外,無法被其他自然數(shù)整除的數(shù)(也可定義為只有1與該數(shù)本身兩個(gè)因數(shù)的數(shù))。

簡單來說就是,只能除以1和自身的數(shù)(需要大于1)就是質(zhì)數(shù)。舉個(gè)栗子,5這個(gè)數(shù),從2開始一直到4,都不能被它整除,只有1和它本身(5)才能被5整除,所以5就是一個(gè)典型的質(zhì)數(shù)。

那么想計(jì)算出一個(gè)隨機(jī)數(shù)是不是質(zhì)數(shù)用Python應(yīng)該怎么寫呢?首先第一句話肯定是接受用戶輸入的數(shù)字:

n = int(input("please enter the number:"))

接著要計(jì)算該數(shù)是不是質(zhì)數(shù),那么就要從2開始一直除到該數(shù)之前的那個(gè)自然數(shù),很明顯是一個(gè)數(shù)字范圍:

for i in range(2, n):

在循環(huán)體里面,每次循環(huán)當(dāng)然就是要判斷當(dāng)次除法是否是整除,這里可以使用求模運(yùn)算,也就是取余,當(dāng)余數(shù)為0時(shí),該數(shù)就不是質(zhì)數(shù):

if n % i == 0:
        print("%d is not a prime number!" % n)
        break

這個(gè)break意思就是當(dāng)該數(shù)不是質(zhì)數(shù)時(shí),就跳出整個(gè)循環(huán),該數(shù)就不是我們要的數(shù)字了。

那么,所有循環(huán)迭代都完成后還沒有找出能整除的情況的話,那么可以判斷該數(shù)就是一個(gè)質(zhì)數(shù),所以:

else:
    print("%d is a prime number!" % n)

那么此時(shí),所有代碼就寫好了,不過為了看起來簡單,沒有罩一層是否大于1的判斷,用戶輸入的數(shù)字默認(rèn)需要大于1:

n = int(input("please enter the number:"))
for i in range(2, n):
    if n % i == 0:
        print(" %d is not a prime number!" % n)
        break
else:
    print(" %d is a prime number!" % n)

這里要細(xì)細(xì)品味這段代碼,else其實(shí)不是和if是一對,而是和for并排的,我們常見的是if…else…或者if…elif…else諸如此類,但其實(shí)for也可以和else搭配出現(xiàn),在這段代碼里,當(dāng)某一次遍歷結(jié)果余數(shù)為0后,break生效,那循環(huán)就結(jié)束了,那與之成對出現(xiàn)的else代碼也就不執(zhí)行了;當(dāng)所有遍歷結(jié)束后沒有一次余數(shù)為0,那該循環(huán)就轉(zhuǎn)到else開始執(zhí)行,打印輸出“該數(shù)為質(zhì)數(shù)”。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python判斷一個(gè)數(shù)是不是素?cái)?shù)的方法內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI