導航:首頁 > 源碼編譯 > python素數演算法

python素數演算法

發布時間:2022-07-06 19:25:49

『壹』 python求100-200間的素數

# 求100-200之間的所有素數
primes = []
for i in range(100,201):
for j in range(2,int(i**(1/2))+1):
if i % j == 0:
break
else:
primes += [i]
print(primes)

程序縮進如圖所示

『貳』 Python尋找100以內的素數

這個兩個嵌套循環,外層的使用m循環100個數,內層的判斷當前值m是否是素數,如果不是素數條件立即終止。

運行結果正確,這里的else其實還是和if配對,不過是和第二個for循環里的整體的if配對,只有整體的if判斷條件都不滿足,才執行else里的內容

『叄』 python素數怎麼求

1、示例代碼

import math

def isPreme(smk):

i = 2

for i in range(2, smk):

j = 2

for j in range(2, int(math.sqrt(i)+1)):

if (i % j == 0):

break

else:

print('%s是素數' % i)

isPreme(20)


2、示例結果

2是素數

3是素數

5是素數

7是素數

11是素數

13是素數

17是素數

19是素數

『肆』 python求質數的演算法

很早 的一個 函數

『伍』 Python使用遍歷循環for輸出2~500之間的所有素數,每個素數之間用跳格鍵分開 急!

##python演算法題:輸出2~100之間的素數

i=2

j=2

##除了1和其本身,其他都不能整除

for j in range(2,101):

for i in range(2,j):

if j%i==0:

break;

elif (j-1)==i:

print ('{}是素數'.format(j))

例如:

k = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

for i in range(100, 998):

if (i % 10 + i % 100 // 10) % 10 == (i // 100):

for m in k:

if i % m == 0:

break

if m ==31:

print(i)

(5)python素數演算法擴展閱讀:

Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(位元組碼),然後再由Python Virtual Machine(Python虛擬機)來執行這些編譯好的byte code。這種機制的基本思想跟Java,NET是一致的。

Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。這里的高級並不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠。

『陸』 python求素數的個數

求素數本質上的演算法還是:除了1和它本身之外的數都不能整除的數。

在網上看到了一種用一行就解決的代碼:

" ".join("%s" % x for x in range(2,100) if not [y for y in range(2,x) if x%y == 0])
對這段代碼分解,最後一段列表生成式[y for y in range(2,x) if x%y == 0]這個就是核心演算法y是從2到x-1的數,x只要能對y整除,配上前面的if not,就是,x不能被2到x-1的數整除,再看前面一段,x for x in range(2,100) 其實就是讓x從2到100的取值。我們這假設題目就是求100內的素數。其實代碼到這就得出結果了,只要在這些代碼外面加上[]就是一個列表生成式了:

[x for x in range(2,100) if not [y for y in range(2,x) if x%y == 0]]
那麼為什麼還加上了" ".join("%s" % 。。。)這段代碼呢?其實只是格式化美觀罷了,"%s" %是一種字元串格式化的語法, 基本用法是將值插入到%s佔位符的字元串中,join() 方法用於將序列中的元素以指定的字元連接生成一個新的字元串。
下面是結果:

'2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97'
這樣解析出來是個字元串還不能分割,所以我重新改了一下:

a = (" ".join("%s" % x for x in range(2,100) if not [y for y in range(2,x) if x%y == 0])).split()
list1 = []
for item in (a):
list1.append(int(item))
print(list1)
split()把字元串解析成列表,然後給列表每一項都轉化成數字。
在數學里,我們還有種判斷素數的簡化方法:即y的取值范圍是2到x的平方根+1

import math
(" ".join("%s" % x for x in range(2,100) if not [y for y in range(2, int(math.sqrt(x))+1) if x%y == 0])).split()
下面是一種正常的演算法:
import math
num = []
i = 2
for i in range(2,100):
j = 2;
for j in range(2,int(math.sqrt(i)+1)):
if (i%j==0):
break;
else:
num.append(i)
print(num)

『柒』 python求100到200素數

python求100到200素數的程序代碼:
sushu=[]
for i in range(100,201):
for j in range(2,i):
if i%j==0:
break
if i==j+1:
sushu.append(i)
print(sushu)

『捌』 如何用Python編寫一個素數環

代碼:
n = int(input("請輸入最大數n:"))
lists = [[1]]#多個素數環
surplusnum = list(range(1,n+1)) #剩餘的數
def sumisprime(x, y):
#x與y之和是否是素數
isprime=True#是否是素數
s = x + y#和
for i in range(2, int(s**0.5)+1):
#素數判定法:從2開始直到此數的開方內的整數都不能被該數整除,則此數為素數
if s%i == 0:#能被整除
isprime = False#不是素數
break#跳出循環
return isprime#返回後否是素數(是:True,否:False)
changelast=lambda listx,addvalue:listx[0:-1]+[addvalue]#改變列表末尾的函數
while len(lists[0] if len(lists) else [0]*n) < n:#當素數環長度小於最大數時
n2 = len(lists[0]) #n2為判定,理論當前列表長度最大值
for listn in lists:#遍歷各個可能的素數環
surplusnum=list(range(1,n+1))#默認值
for j in listn:#遍歷當前列表的數
surplusnum.remove(j)#剩餘的數中刪除此數
for i in surplusnum:#遍歷剩餘的數
if sumisprime(listn[n2-1], i):#最後一個數與它的和是素數
if len(listn) == n2:#如果現在這個列表是沒有被添加過的
listn.append(i)#增加在這個列表
else:#如果該列表已經被添加過
lista = changelast(listn, i)#要加入的列表
if lista not in lists:#如果不在這個列表裡
lists.append(lista)#添加到另一個列表
for listn in lists.():#防止lists被刪造成影響
if len(listn) != n2+1:#如果長度沒有達到預期(+1)
lists.remove(listn)#刪除該列表(取消此可能性)
if len(lists[0]) == n:#已經符合條件
for listn in lists:#遍歷列表,檢查首尾
if sumisprime(listn[-1], listn[0]):#如果首尾相加等於素數
print(listn)#環成立,列印出來
break#結束循環
說明:經試驗,都沒什麼問題,n=12也能很快運算完(但我勸你不要打出來),如果你只需要1個素數環,可以把break的縮進調到print(listn)並列。

『玖』 python如何判斷素數

以下的代碼,求100以內的所有素數:
for i in range(2,100):
for j in range(2,i):
if i%j==0:
break
else:
print(i,end='\t')

閱讀全文

與python素數演算法相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:579
python員工信息登記表 瀏覽:377
高中美術pdf 瀏覽:161
java實現排列 瀏覽:513
javavector的用法 瀏覽:982
osi實現加密的三層 瀏覽:233
大眾寶來原廠中控如何安裝app 瀏覽:916
linux內核根文件系統 瀏覽:243
3d的命令面板不見了 瀏覽:526
武漢理工大學伺服器ip地址 瀏覽:149
亞馬遜雲伺服器登錄 瀏覽:525
安卓手機如何進行文件處理 瀏覽:71
mysql執行系統命令 瀏覽:930
php支持curlhttps 瀏覽:143
新預演算法責任 瀏覽:444
伺服器如何處理5萬人同時在線 瀏覽:251
哈夫曼編碼數據壓縮 瀏覽:426
鎖定伺服器是什麼意思 瀏覽:385
場景檢測演算法 瀏覽:617
解壓手機軟體觸屏 瀏覽:350