#求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...