導航:首頁 > 編程語言 > python編程素數求解

python編程素數求解

發布時間:2023-01-05 20:11:11

1. python 求素數

因為縮進問題後者第二個if依然在循環體里, 如i==y,依然會執行第二個if。

2. 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是素數

3. python中如何編程求1到100之間的素數

1、新建python文件,testprimenum.py;

4. 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)

5. python中如何編程求1到100之間的素數

#!/usr/bin/python

#-*- coding:UTF-8 -*-

#求素數

list=[]

i=2

for i in range (2,100):

j=2

for j in range(2,i):

if(i%j==0):

break

else:

list.append(i)

print(list)

(5)python編程素數求解擴展閱讀:

python:for語句的使用方法

for循環的語法格式:

for i in range(n):#從數據類型中拿一個值賦值給i

print(i)#列印i

例如:

#for

for i in range (1,6,2):#從一開始到六之前每隔上2個數字

print(i)#結果為1,3,5

# ------------------------------------------------

s = ["man", "woman", "girl", "boy", "sister"]

for i in s:#列表s中的每個元素給i

print(i)

#-------------------------------------------------

for i in range(5):

print(i)#結果為:0,1,2,3,4

for循環實例:數字0,1,2組成一個百位數,並且數字不重復!

#for

for i in range(0,3):

for j in range(0,3):

for k in range(0,3):

if (i != 0) and (i != j) and (i != k) and (j != k):

print (i,j,k)

6. 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)

程序縮進如圖所示

7. 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)

8. python中編程求1到100之間的素數有幾種方法

六種。
方法一: 窮舉法
方法二: 開方減"半"法
方法三:去除偶數法
方法四:使用列表法。
方法五:素數性質法
方法六: 埃拉托斯特尼篩法
拓展資料:Python由荷蘭數學和計算機科學研究學會的Guido van Rossum 於1990 年代初設計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。Python語法和動態類型,以及解釋型語言的本質,使它成為多數平台上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。Python解釋器易於擴展,可以使用C或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。Python 也可用於可定製化軟體中的擴展程序語言。Python豐富的標准庫,提供了適用於各個主要系統平台的源碼或機器碼。2021年10月,語言流行指數的編譯器Tiobe將Python加冕為最受歡迎的編程語言,20年來首次將其置於Java、C和JavaScript之上
Python已經成為最受歡迎的程序設計語言之一。自從2004年以後,python的使用率呈線性增長。Python 2於2000年10月16日發布,穩定版本是Python 2.7。Python 3於2008年12月3日發布,不完全兼容Python 2。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。
由於Python語言的簡潔性、易讀性以及可擴展性,在國外用Python做科學計算的研究機構日益增多,一些知名大學已經採用Python來教授程序設計課程。例如卡耐基梅隆大學的編程基礎、麻省理工學院的計算機科學及編程導論就使用Python語言講授。眾多開源的科學計算軟體包都提供了Python的調用介面,例如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫學圖像處理庫ITK。而Python專用的科學計算擴展庫就更多了,例如如下3個十分經典的科學計算擴展庫:NumPy、SciPy和matplotlib,它們分別為Python提供了快速數組處理、數值運算以及繪圖功能。因此Python語言及其眾多的擴展庫所構成的開發環境十分適合工程技術、科研人員處理實驗數據、製作圖表,甚至開發科學計算應用程序。2018年3月,該語言作者在郵件列表上宣布Python 2.7將於2020年1月1日終止支持。用戶如果想要在這個日期之後繼續得到與Python 2.7有關的支持,則需要付費給商業供應商。

9. python求1~100之間的所有素數之和

解題思路:需要實現兩個函數,一個是判斷數字是否是素數;一個是求和函數。


def is_prime(num):

"""

判斷是否是素數.

:param num:

:return:

"""

result = True

# 質數大於 1

if num > 1:

# 查看因子

for i in range(2, num):

if (num % i) == 0:

result = False

break

else:

result = True


# 如果輸入的數字小於或等於 1,不是質數

else:

result = False

return result

"""

求閉區間[start, end]之間的素數之和.

:param start:

:param end:

:return: """

result = 0;

for i in range(start, end + 1):

if is_prime(i):

print(i)

result = result + i

return result

if __name__ == '__main__':

num = 8

print(is_prime(num))

num = 5

print(is_prime(num))

print(sum(1, 5))

閱讀全文

與python編程素數求解相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:753
蘋果郵件無法連接伺服器地址 瀏覽:956
phpffmpeg轉碼 瀏覽:667
長沙好玩的解壓項目 瀏覽:140
專屬學情分析報告是什麼app 瀏覽:562
php工程部署 瀏覽:831
android全屏透明 瀏覽:730
阿里雲伺服器已開通怎麼辦 瀏覽:801
光遇為什麼登錄時伺服器已滿 瀏覽:300
PDF分析 瀏覽:482
h3c光纖全工半全工設置命令 瀏覽:139
公司法pdf下載 瀏覽:379
linuxmarkdown 瀏覽:349
華為手機怎麼多選文件夾 瀏覽:681
如何取消命令方塊指令 瀏覽:347
風翼app為什麼進不去了 瀏覽:776
im4java壓縮圖片 瀏覽:360
數據查詢網站源碼 瀏覽:148
伊克塞爾文檔怎麼進行加密 瀏覽:888
app轉賬是什麼 瀏覽:161