⑴ 用python找質數
n=10000
numbers=list(range(2,n+1))
i=2
whilei<10001:
forminnumbers:
ifi<m:
whilem%i==0:#這邊你為什麼要用while呢,這邊如果m=3,i=2的話是會進入死循環的,改成if語句試試
k=m#這個沒必要存在,只接用numbers.remove(m)
numbers.remove(k)
i=i+1
print(numbers)
print(" Therewere",len(numbers),"primenumbersupto",n)
#下面是修改後的
n=10000
numbers=list(range(2,n+1))
i=2
whilei<10001:
forminnumbers:
ifi<mandm%i==0:
numbers.remove(m)
i=i+1
print(numbers)
print(" Therewere",len(numbers),"primenumbersupto",n)
⑵ python求質數的演算法
很早 的一個 函數
⑶ python,隨機產生40個100以內的數字,然後定義一個判斷素數的函數,用該函數判斷這40個數字並列印
fromrandomimport*
a=[randint(0,100)foriinrange(40)]#a是列表
defis_prime(a):
list_num=[]
foriina:
fornuminrange(2,i):
ifi%num==0:#余數為0時,該數就不是質數
break#break意思就是當該數不是質數時,就跳出整個循環
else:#循環迭代都完成後還沒有找出能整除的情況,就可以判斷該數i就是一個質數
list_num.append(i)
returnlist_num
print(is_prime(a))
⑷ Python設計:編寫程序隨機產生一個20-30之間的整數,判斷是否是素數
⑸ python中的隨機數是怎麼實現的
PYTHON中的偽隨機數發生器用的是梅森旋轉演算法。
梅森旋轉演算法(Mersenne twister)是一個偽隨機數發生演算法。由松本真和西村拓士在1997年開發,基於有限二進制欄位上的矩陣線性遞歸。可以快速產生高質量的偽隨機數,修正了古典隨機數發生演算法的很多缺陷。
梅森旋轉演算法是R、Python、Ruby、IDL、Free Pascal、PHP、Maple、Matlab、GNU多重精度運算庫和GSL的默認偽隨機數產生器。從C++11開始,C++也可以使用這種演算法。
整個演算法主要分為三個階段:獲得基礎的梅森旋轉鏈;對於旋轉鏈進行旋轉演算法;對於旋轉演算法所得的結果進行處理。
演算法實現的過程中,參數的選取取決於梅森素數,故此得名。
梅森素數由梅森數而來。所謂梅森數,是指形如2↑p-1的一類數,其中指數p是素數,常記為Mp 。如果梅森數是素數,就稱為梅森素數。
例如4-1=3,8-1=7,16-1=15(不是素數),32-1=31,64-1=63(不是素數)等等。
⑹ Python求質數
如下:
importmath
defm(a,b):
ret=0
forxinrange(a,b+1):
foryinrange(2,int(math.sqrt(x))+1):
ifx%y==0:
break
else:
ret+=1
print(ret)
輸入:m(3,7)
得到:3
⑺ python隨機生成40個在(0,100)的數字組成列表,並判斷每個數字是否為素數,列印素數
#!/usr/bin/python3
import random
for n in range(1, 40):
r=random.randint(0,100)
for x in range(2, r):
if r % x == 0:
break
else:
print(r, ' 是素數')