這篇文章主要介紹了python判斷一個數是不是素數的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
先來看下什么是質數:
質數(Prime number),又稱素數,指在大于1的自然數中,除了1和該數自身外,無法被其他自然數整除的數(也可定義為只有1與該數本身兩個因數的數)。
簡單來說就是,只能除以1和自身的數(需要大于1)就是質數。舉個栗子,5這個數,從2開始一直到4,都不能被它整除,只有1和它本身(5)才能被5整除,所以5就是一個典型的質數。
那么想計算出一個隨機數是不是質數用Python應該怎么寫呢?首先第一句話肯定是接受用戶輸入的數字:
n = int(input("please enter the number:"))
接著要計算該數是不是質數,那么就要從2開始一直除到該數之前的那個自然數,很明顯是一個數字范圍:
for i in range(2, n):
在循環體里面,每次循環當然就是要判斷當次除法是否是整除,這里可以使用求模運算,也就是取余,當余數為0時,該數就不是質數:
if n % i == 0: print("%d is not a prime number!" % n) break
這個break意思就是當該數不是質數時,就跳出整個循環,該數就不是我們要的數字了。
那么,所有循環迭代都完成后還沒有找出能整除的情況的話,那么可以判斷該數就是一個質數,所以:
else: print("%d is a prime number!" % n)
那么此時,所有代碼就寫好了,不過為了看起來簡單,沒有罩一層是否大于1的判斷,用戶輸入的數字默認需要大于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)
這里要細細品味這段代碼,else其實不是和if是一對,而是和for并排的,我們常見的是if…else…或者if…elif…else諸如此類,但其實for也可以和else搭配出現,在這段代碼里,當某一次遍歷結果余數為0后,break生效,那循環就結束了,那與之成對出現的else代碼也就不執行了;當所有遍歷結束后沒有一次余數為0,那該循環就轉到else開始執行,打印輸出“該數為質數”。
感謝你能夠認真閱讀完這篇文章,希望小編分享python判斷一個數是不是素數的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。