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模式遠(yuǎn)程命令執(zhí)行功能案例
這篇文章主要介紹了Python socket套接字實現(xiàn)C/S模式遠(yuǎn)程命令執(zhí)行功能,涉及Python socket套接字編寫服務(wù)器/客戶機(jī)模式數(shù)據(jù)傳輸相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
Python Web服務(wù)器Tornado使用小結(jié)
最近在做一個網(wǎng)站的后端開發(fā)。因為初期只有我一個人做,所以技術(shù)選擇上很自由。在 web 服務(wù)器上我選擇了 Tornado。雖然曾經(jīng)也讀過它的源碼,并做過一些小的 demo,但畢竟這是第一次在工作中使用,難免又發(fā)現(xiàn)了一些值得分享的東西2014-05-05
python 最簡單的實現(xiàn)適配器設(shè)計模式的示例
這篇文章主要介紹了python 最簡單的實現(xiàn)適配器設(shè)計模式的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

