Python 判斷是否為質數或素數

2021-09-07 20:30:20 字數 1177 閱讀 8137

乙個大於1的自然數,除了1和它本身外,不能被其他自然數(質數)整除(2, 3, 5, 7等),換句話說就是該數除了1和它本身以外不再有其他的因數。

首先我們來第乙個傳統的判斷思路:

def handlernum(num):

# 質數大於 1

if num > 1:

# 檢視是否有其他因子

for i in range(2, num//2+1):

if (num % i) == 0:

print(num,"不是質數")

break

else:

print(num, "是質數")

# 如果輸入的數字小於或等於 1,不是質數

else:

print(num, "不是質數")

if __name__ == '__main__':

# 使用者輸入乙個數字

num = int(input("請輸入乙個數字: "))

# 呼叫函式處理方法

handlernum(num)`在這裡插入**片`

其實上面迴圈中的else和if並不是成對的,而是和for併排的,當然for和else搭配出現並不少見,慢慢地會有所體會的,這段**的含義是,當for裡面的條件都不滿足時,就會執行else裡面的**。以上就是我們按照傳統的思路來解題,其實還有一種更快,更簡單的方法解題,那就是利用真或假來判斷。

#處理函式

def isprime(num):

#根據質數的定義,其必須大於0

if num == 1:

return false

#迴圈需要判斷的次數

for i in range(2, num // 2 + 1):

#如果該數有其他的因子返回false,即不是質數

if num % i == 0:

return false

return true

if __name__ == '__main__':

#輸入乙個數字 

num = eval(input("請輸入乙個數,判斷是否為質數:"))

#呼叫方法(如果是質數返回true,否則返回false),列印結果

print(isprime(num))

這兩種方法大體都差不多,只不過這給我們以後解決問題提供了一種新的思路。

判斷是否為質數

程式接受兩個正整數的輸入,構成乙個閉區間,找出這個區間內的所有質數。判斷乙個數n是否為質數時,先對這個數開平方,隨後從2開始,迴圈到這個平行根,檢查其中的數能否整除數n,若能整除,則為合數,否則為質數。由於sqrt函式的返回值是double型別,為保證準確性 如sqrt 4 返回值可能是1.9999...

判斷是否為質數 c 實現)

01 判斷是否為質數 描述 輸入正整數a,判斷是否為質數 a 106 輸入一行乙個正整數a 輸出如果a是質數,則輸出a shi zhi shu 如果a不是質數,則輸出a bu shi zhi shu。格式請參考樣例 樣例輸入 31樣例輸出 31 shi zhi shu filename isprim...

是否為質數

思路為 1 2是質數,所有是偶數的都是2的倍數一定不是質數 除了2,偶數一定不是質數,因此我們不需要考慮任何偶數 2.從3開始考慮到n的奇數,其中某個數,如3的所有整數倍的數都不是質數,我們需要找到不小於n為止,即全部考慮到 這樣的話,當我們遍歷到9的時候,因為9不是第一次出現,他已經被3考慮為非質...