python指令碼11 求10萬以內所有素數

2022-08-26 10:03:11 字數 1908 閱讀 9586

#

求10萬以內所有素數

num = int(input("

>>>"))

strs = ''

for i in range(2,num):

for c in range(2,int(i**0.5)+1):

if i%c ==0:

break

else

: strs += str(i)+'

'print(strs)

方法2:

print(2)

for i in range(3,100001,2):

if i>10 and i%10 == 5:

continue

else

:

for j in range(2,int(i**0.5+1)):

if i%j ==0:

break

else

:

print(i)

方法3:

#

求10萬以內所有素數

#此題的目的是為了讓大家注意效率問題

#思考:為什麼到乙個數的一半就可以了

for a in range(2,100000):

for b in range(2,int(a**0.5)+1):

if a%b ==0:

break

else

:

print(a)

方法4:

#

求10萬以內所有素數

#此題的目的是為了讓大家注意效率問題

for a in range(3,100000,2):

for b in range(3,int(a**0.5)+1,2):

if a%b ==0:

break

else

:

print(a)

比較兩種演算法的效率:

#

兩種演算法的對比的完整**

import

datetime

upper_limit = 100000delta =[0,0]

counts =[0,0]

start =datetime.datetime.now()

for _ in range(10):

count[0] =0

for x in range(2,upper_limit):

for i in range(2,int(x**0.5)+1):

if x % i ==0:

break

else

:

#print(x)

counts[0] += 1delta[0] = (datetime.datetime.now() -start).total_seconds()

start =datetime.datetime.now()

for _ in range(10):

counts[1] = 1

#print(2)

for x in range(3,upper_limit,2):

for i in range(3,int(x**0.5)+1,2):

if x % i ==0:

break

else

:

#print(x)

counts[1] += 1delta[1] = (datetime.datetime.now() -start).total_seconds()

print(delta, sep="\t"

)print(conuts, sep="

\t")

求N以內的所有素數

如下 include stdafx.h include conio.h include math.h include malloc.h typedef long long prime typedef struct pn 構造素數節點 struct pn next pn static pn prime...

輸出200以內所有素數(python)

質數 prime number 又稱 素數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他 因數。輸出200以內所有素數 python num 0 for i in range 2,200 k true for j in range 2,i for j in range 2,i...

python之求解100以內的所有素數

質數 prime number 又稱素數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數。如 2 3 5 7 11 13 17 19。一 說明 判斷素數,函式或一般語句均可 100以內,設定迴圈上限 輸出格式要求 二 參考 2.1 方法一 math庫 impor...