python判斷所輸入的任意一個正整數(shù)是否為素數(shù)的兩種方法
素數(shù)(也稱質(zhì)數(shù)),是指除了1和該數(shù)本身,不能被任何正整數(shù)整除的正整數(shù)。判斷一個正整數(shù)m是否為素數(shù),只要判斷m可否被2~根號m之中的任何一個正整數(shù)整除,如果m不能被此范圍中任何一個正整數(shù)整除,m即為素數(shù),否則m為合數(shù)。
方法一:(利用for循環(huán)和break語句)
import math m = int(input("請輸入一個整數(shù)(>1):")) k = int(math.sqrt(m)) for i in range(2, k+2): if m % i == 0: break #可以整除,肯定不是素數(shù),結(jié)束循環(huán) if i == k+1: print(m, "是素數(shù)!") else: print(m, "是合數(shù)!")
方法二:(利用while循環(huán)和bool變量)
import math m = int(input("請輸入一個整數(shù)(>1):")) k = int(math.sqrt(m)) flag = True #假設(shè)輸入的整數(shù)為素數(shù) i = 2 while (i <= k and flag == True): if (m % i == 0): flag = False #可以整除,肯定不是素數(shù),結(jié)束循環(huán) else: i += 1 if (flag == True): print(m, "是素數(shù)!") else: print(m, "是合數(shù)!")
例:打印100~200間的全部素數(shù),每行輸出10個
import math;n=0 for m in range(101,201,2): k = int(math.sqrt(m)) for i in range(2,k+2): if m % i == 0:break if i == k+1: if n % 10 == 0:print() print('%d' % m,end=' ') n += 1
以上這篇python判斷所輸入的任意一個正整數(shù)是否為素數(shù)的兩種方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python socket套接字實現(xiàn)C/S模式遠程命令執(zhí)行功能案例
這篇文章主要介紹了Python socket套接字實現(xiàn)C/S模式遠程命令執(zhí)行功能,涉及Python socket套接字編寫服務(wù)器/客戶機模式數(shù)據(jù)傳輸相關(guān)操作技巧,需要的朋友可以參考下2018-07-07Python Web服務(wù)器Tornado使用小結(jié)
最近在做一個網(wǎng)站的后端開發(fā)。因為初期只有我一個人做,所以技術(shù)選擇上很自由。在 web 服務(wù)器上我選擇了 Tornado。雖然曾經(jīng)也讀過它的源碼,并做過一些小的 demo,但畢竟這是第一次在工作中使用,難免又發(fā)現(xiàn)了一些值得分享的東西2014-05-05python 最簡單的實現(xiàn)適配器設(shè)計模式的示例
這篇文章主要介紹了python 最簡單的實現(xiàn)適配器設(shè)計模式的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2020-06-06