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

用python求素數

發布時間:2022-10-02 05:12:15

『壹』 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判斷素數是什麼

判斷是否為素數的方法:

1、利用for循環和break語句,代碼為【for i in range(2, k+2):if m % i == 0:break】。

2、利用while循環和bool變數。

python使用技巧

如果在異常處理程序或 finally 塊中引發異常,默認情況下,異常機制會隱式工作會將先前的異常附加為新異常的 __context__ 屬性。這就是 Python 默認開啟的自動關聯異常上下文。

如果你想自己控制這個上下文,可以加個 from 關鍵字( from 語法會有個限制,就是第二個表達式必須是另一個異常類或實例。),來表明你的新異常是直接由哪個異常引起的。

『叄』 如何利用python輸出素數

def is_prime(m):
"""判斷m是否素數"""
for i in range(2,int(m**(1/2))+1):
if m % i == 0:
return False
else:
return True

程序縮進如圖所示

『肆』 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中編程求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有關的支持,則需要付費給商業供應商。

『陸』 用python求1至100內所有素數並統計個數

#!/usr/bin/python
# -*- coding: UTF-8 -*-
b = 0
for a in range(1,100):
k = 0
for i in range(2,a):
if a % i == 0 :
k += 1
if k == 0 :
print a
b +=1
print "素數一共有",b,"個"
素數:一個數只能被1 和它本身整除,則該數即為素數

『柒』 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中如何編程求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)

(8)用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)

『玖』 Python 素數

i = 2
while i <= 100:
j = 2
while j <= i / j: #難點1
if i % j == 0:
break #如果提前提出,j的值<= i / j
j = j + 1
if j > i / j: #難點2
print(i, end=' ')
i = i + 1
其實代碼每一句都很簡單,就不一一注釋了,其實難的是思路。主要是兩個地方對J變數的判斷
A:while循環,一種常見的是j<=sqrt(i),用這個數的開方(根號)來指定搜索上限,這是因為:
一個數若可以進行因數分解,那麼分解時得到的兩個數一定是一個小於等於sqrt(n),一個大於等於sqrt(n)——所以只要搜索到根號的地方就可以了,提高了速度。
用i/j的方式是sqrt的一種變種,j<=sqrt(i),由於i>j>1,兩邊平方後不等式仍然成立
j^2<=i

兩邊除以j就變成了j
<=
i
/
j
B:第二處,根據j的數值來判斷i是否是素數。當在循環中找到i
%
j
==
0的情況,循環會提前退出,導致j
< i
/
j——說明不是素數;如果循環沒有提前退出,說明i是素數,這時j的值>
i
/
j

『拾』 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求素數相關的資料

熱點內容
壓縮文件時報錯 瀏覽:611
圖的演算法有什麼用 瀏覽:793
櫃式空調壓縮機在哪裡 瀏覽:724
創建多級文件夾視頻講解 瀏覽:195
計算機有很多空文件夾能刪嗎 瀏覽:486
android44w下載 瀏覽:248
測排卵app哪個好用 瀏覽:622
平時解壓方法圖解 瀏覽:56
php多長時間能學會 瀏覽:308
apex伺服器選什麼好 瀏覽:595
nds編譯 瀏覽:110
各個擊破法動態規劃法貪婪演算法 瀏覽:533
柱端部為什麼要加密 瀏覽:891
c單鏈表排序演算法 瀏覽:362
python鄰接鏈表 瀏覽:369
外國解壓的視頻說話助眠 瀏覽:115
查看php擴展版本 瀏覽:239
社保卡加密機放在信息中心 瀏覽:95
python3爬取網頁數據 瀏覽:621
超級主升幅圖公式源碼 瀏覽:22