素數的判斷

2021-09-28 17:18:43 字數 1430 閱讀 6025

一般方法:

for n in

range

(100,1

,-1)

:if n%2==

0:continue

for i in

range(3

,int

(n**

0.5)+1

,2):

#這裡步長為2,可以自己想想為什麼。

if n%i ==0:

#結束內迴圈

break

else

:#與for配對

print

(n)#結束外迴圈

break

特殊方法:

n =

input

("input an integer:"

)n =

int(n)

if n ==2:

print

('yes'

)#偶數必然不是素數

elif n%2==

0:print

('no'

)else

:#大於5的素數必然出現在6的倍數兩側

#因為6x+2、6x+3、6x+4肯定不是素數,假設x為大於1的自然數

m = n %

6if m!=

1and m!=5:

print

('no'

)else

:for i in

range(3

,int

(n**

0.5)+1

,2):

if n%i ==0:

print

('no'

)break

else

:print

('yes'

)

篩選法:

l=[2

]#二是素數,做特殊處理

m,n=

input()

.split(

)#輸入要處理的素數範圍

m=int

(m)n=

int(n)

for i in

range

(m,n)

: flag=

true

for j in l:

if i%j==0:

#如果當前值可整除已篩選出的素數中的任意值,則改變flag,結束迴圈

flag=

false

break

if flag:

#新增該數至素數列表

print

(l)print

(len

(l))

求某乙個數字是否是素數的話,使用特殊方法比較快。

如果是長時間的經常性的查詢某些蘇數字是否屬於素數的話,篩選法比較快。

素數的判斷

所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2 16的任一整數整除。因此判斷乙個整數m是否是素數,只需把m被2 m 1之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數 另外判斷方法還可以簡化。m不必唄2 m 1之間的每乙個整數去除,只需被2 m之間...

素數的判斷

素數是啥?知道了這個就能夠知道如何判斷乙個數是否為素數了。這篇博文裡詳細說明了素數是啥 素數 如果乙個整數a 1且只能被平凡約數1和它自身所整除,則這個數是素數。也就是說素數是恰好有2個約數的整數,即1和它本身。因為n的約數都不超過n,所以只要檢查2 n 1的所有整數是否整除n就能判斷n是不是素數了...

素數的判斷

素數 首先,儲存最小素數2,然後,從3開始,在奇數中尋找素數。用不大於該奇數一半的所有奇數去整除它,如果都除不盡,該奇數是素數。曾稱質數。乙個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。如2,3,5,7,11,13,17 8 2042 0sample output 8 3...