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

成都創(chuàng)新互聯(lián)公司技術團隊十載來致力于為客戶提供成都做網(wǎng)站、成都網(wǎng)站設計、品牌網(wǎng)站制作、全網(wǎng)營銷推廣、搜索引擎SEO優(yōu)化等服務。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術團隊,先后服務、推廣了千余家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機構單位。
質(zhì)數(shù)(Prime number),又稱素數(shù),指在大于1的自然數(shù)中,除了1和該數(shù)自身外,無法被其他自然數(shù)整除的數(shù)(也可定義為只有1與該數(shù)本身兩個因數(shù)的數(shù))。
簡單來說就是,只能除以1和自身的數(shù)(需要大于1)就是質(zhì)數(shù)。舉個栗子,5這個數(shù),從2開始一直到4,都不能被它整除,只有1和它本身(5)才能被5整除,所以5就是一個典型的質(zhì)數(shù)。
那么想計算出一個隨機數(shù)是不是質(zhì)數(shù)用python應該怎么寫呢?首先第一句話肯定是接受用戶輸入的數(shù)字:
n = int(input("please enter the number:"))接著要計算該數(shù)是不是質(zhì)數(shù),那么就要從2開始一直除到該數(shù)之前的那個自然數(shù),很明顯是一個數(shù)字范圍:
for i in range(2, n):
在循環(huán)體里面,每次循環(huán)當然就是要判斷當次除法是否是整除,這里可以使用求模運算,也就是取余,當余數(shù)為0時,該數(shù)就不是質(zhì)數(shù):
if n % i == 0:
print("%d is not a prime number!" % n)
break這個break意思就是當該數(shù)不是質(zhì)數(shù)時,就跳出整個循環(huán),該數(shù)就不是我們要的數(shù)字了。
那么,所有循環(huán)迭代都完成后還沒有找出能整除的情況的話,那么可以判斷該數(shù)就是一個質(zhì)數(shù),所以:
else:
print("%d is a prime number!" % n)那么此時,所有代碼就寫好了,不過為了看起來簡單,沒有罩一層是否大于1的判斷,用戶輸入的數(shù)字默認需要大于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搭配出現(xiàn),在這段代碼里,當某一次遍歷結果余數(shù)為0后,break生效,那循環(huán)就結束了,那與之成對出現(xiàn)的else代碼也就不執(zhí)行了;當所有遍歷結束后沒有一次余數(shù)為0,那該循環(huán)就轉(zhuǎn)到else開始執(zhí)行,打印輸出“該數(shù)為質(zhì)數(shù)”。
分享文章:創(chuàng)新互聯(lián)Python教程:怎么用python判斷一個數(shù)是否是素數(shù)
標題來源:http://fisionsoft.com.cn/article/coccgep.html


咨詢
建站咨詢
