python基礎練習 判斷質數(素數)

2021-10-11 14:43:11 字數 1244 閱讀 3028

給定乙個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。如,輸入為10, 程式應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7));

#質數#0、怎麼判斷質數?定義乙個函式判斷是否是質數;

#1、求出整數範圍內的質數;存到列表

#2、遍歷所有的質數,求出和等於給定整數的質數對;

def

isprime

(num)

:#判斷是否是質數

import math

if num <=1or

notisinstance

(num,

int)

:return

false

for i in

range(2

,int

(math.sqrt(num))+

1):if num % i ==0:

return

false

return

true

deffunc

(n):

lis=

#存放所有質數

result=

#存放所有質數對

for i in

range

(n):

if isprime(i)

:print

(lis)

for a in

range

(len

(lis)):

for b in

range

(a,len

(lis)):

if lis[a]

+lis[b]

== n:

(lis[a]

,lis[b]))

print

(result)

print

(len

(result)

)func(

10)

延申知識點:

1、判斷是否為質數優化;對於每個數num,其實並不需要從2判斷到num-1,我們知道,乙個數若可以進行因數分解,那麼分解時得到的兩個數一定是乙個小於等於sqrt(mun),乙個大於等於sqrt(mun),據此,上述**中並不需要遍歷到n-1,遍歷到sqrt(num)即可,因為若sqrt(num)左側找不到因數,那麼右側也一定找不到因數。

2、sqrt() 函式

語法:math.sprt(n)

釋義:求數字n的平方根。

python基礎 質數判斷及優化

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

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

學習python斷斷續續有兩個多星期了。學習了基本的列表 元組 字典等基本資料結構的操作,從現在開始學習一些基本的語法 函式和模組,以及用python實現一些演算法。雖然現在還沒有學到很深的地步,但是試著去做一些記載。從今天開始寫python的學習,主要是開乙個頭。給自己乙個學python,記錄的念...

Python判斷 段質數

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