python判斷質數程式 python判斷質數

2021-10-19 02:04:54 字數 828 閱讀 3909

學習python斷斷續續有兩個多星期了。學習了基本的列表、元組、字典等基本資料結構的操作,從現在開始學習一些基本的語法、函式和模組,以及用python實現一些演算法。

雖然現在還沒有學到很深的地步,但是試著去做一些記載。

從今天開始寫python的學習,主要是開乙個頭。給自己乙個學python,記錄的念想!

題:python判斷乙個數是否是質數。

定義法:

因為乙個數n如果在2,到根號n內沒有被整除,那麼在根號n,到n之間也一定沒有被整除.

n=(√n)*(√n)

假設n=x*y,如果x與y都不是√n,那麼當中必定有乙個小於√n,乙個大於√n

所以如果n在(2,√n)不能被整除,那麼在(√n,n)內也一定不能被整除,

因此只需判斷在(2,√n)就可以了,而不用判斷在(2,n)內.

import math

m=int(raw_input("input a num:"))

n=math.sqrt(m)

n=round(n)

while n>1:

if m%n ==0:

print(m,'has factor',n)

break

n -= 1

else:

print(m,'is a prime')在這裡有幾處需要注意:1、輸入的時候是輸入字串的形式,需要轉換

2、開方之後是浮點數,需要取整。此處有round向上取整。int()向下取整

3、此求素數方法不夠快,需改進。

4、此處用了迴圈else語句,控制權離開迴圈而又沒有碰到break語句時會執行。即當並列的while部分沒有執行的時候,執行else部分。

Python判斷 段質數

質數 大於1的自然數中,除了1和它本身以外不再有其他因數的自然數 因數 指整數a除以整數b b 0 的商正好是整數而沒有餘數,我們就說b是a的因數。num int input 輸入乙個數字 if num 1 for i in range 2,num 這是我一開始想法,網上搜到一下面的 for i i...

判斷質數與篩質數

一 判定質數 要判斷乙個數是不是質數,只需遍歷小於等於它的所有數,如果它能被除了1和本身之外的數整除,那麼它就不是質數。很簡單,暴力列舉,如下 1 bool is prime intx 2 但是還可以優化,對於乙個數 x 它有乙個約數 d 那麼 frac 也是 x 的約數,所以我們只需要列舉較小的乙...

python基礎 質數判斷及優化

1.獲取使用者輸入的任意數,判斷其是否是質數。2.求1000以內所有的質數,並優化程式質數判斷條件 質數是只能被1和它自身整除的數,1不是質數也不是合數。方法一 num int input 請輸入任意輸入乙個數字 建立變數num,接收使用者輸入的引數並轉化成整形 i 0 i num 1if num ...