質(zhì)數(shù)又稱素數(shù),指一個大于1的自然數(shù),除了1和它自身外,不能被其他自然數(shù)整除的數(shù)。下面是求質(zhì)數(shù)的程序,例如輸入15,會輸出【2,3,5,7,11,13】共6個15以內(nèi)的質(zhì)數(shù)??梢钥降絭scode 或者pycharm里面試試。
在如皋等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需定制設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,如皋網(wǎng)站建設(shè)費用合理。
import math
number = int(input("請輸入一個數(shù)值: "))
list1 = []
# 如果用戶輸入的數(shù)字大于1
if number 1:
for i in range(number+1):
# 進行判斷
for j in range(2, i):
if (i % j) == 0:
break
else:
if i == 0 or i == 1:
pass
else:
list1.append(i)
else:
print("小于或者等于1的數(shù)值不是質(zhì)數(shù)")
print("{}以內(nèi)的數(shù)值中是質(zhì)數(shù)的有{},共{}個".format(number,list1,len(list1)))
為大家分享了多種方法求質(zhì)數(shù)python實現(xiàn)代碼,供大家參考,具體內(nèi)容如下
題目要求是求所有小于n的質(zhì)數(shù)的個數(shù)。
求質(zhì)數(shù)方法1:
窮舉法:
根據(jù)定義循環(huán)判斷該數(shù)除以比他小的每個自然數(shù)(大于1),如果有能被他整除的就不是質(zhì)數(shù):
def countPrimes1(self, n):
"""
:type n: int
:rtype: int
"""
if n=2:
return 0
else:
res=[]
for i in range(2,n):
flag=0 # 質(zhì)數(shù)標(biāo)志,=0表示質(zhì)數(shù)
for j in range(2,i):
if i%j ==0:
flag=1
if flag==0:
res.append(i)
return len(res)
求質(zhì)數(shù)方法2:
利用定理:如果一個數(shù)是合數(shù),那么它的最小質(zhì)因數(shù)肯定小于等于它的平方根。所以判斷一個數(shù)是否是質(zhì)數(shù),只需判斷它是否能被小于它開根后的所有數(shù)整除。這樣做的運算會少很多。
def countPrimes2(self, n):
if n=2:
return 0
else:
res=[]
for i in range(2, n):
flag=0
for j in range(2, int(math.sqrt(i))+1):
if i % j == 0:
flag = 1
if flag == 0:
res.append(i)
return len(res)
求質(zhì)數(shù)方法3:
利用定理:如果一個數(shù)是合數(shù),那么它的最小質(zhì)因數(shù)肯定小于等于它的平方根。我們可以發(fā)現(xiàn)只要嘗試小于等于平方根的所有數(shù)即可。列舉從 3 到根號x的所有數(shù),還是有些浪費。比如要判斷101是否質(zhì)數(shù),101的根號取整后是10,需要嘗試的數(shù)是1到10。但是可以發(fā)現(xiàn),對9的嘗試是多余的。不能被3整除,必然不能被9整除……順著這個思路走下去,其實,只要嘗試小于根號x的質(zhì)數(shù)即可。而這些質(zhì)數(shù),恰好前面已經(jīng)算出來了,已經(jīng)存在res中了。
def countPrimes3(self, n):
if n = 2:
return 0
else:
res = []
for i in range(2, n):
flag = 0
for j in res:
if i % j == 0:
flag = 1
if flag == 0:
res.append(i)
return len(res)
希望對大家有幫助
N要是整數(shù),如果是浮點數(shù),要轉(zhuǎn)換成比自己大的最小的整數(shù);
輸出正好5個質(zhì)數(shù),定義一個計數(shù)器;
判斷是否是質(zhì)數(shù),寫個函數(shù)prime();
根據(jù)返回值是否是質(zhì)數(shù)a都要+1,如果是質(zhì)數(shù),count-1;
輸出時最后一個不帶逗號,其他都帶 擴展資料
Python由荷蘭數(shù)學(xué)和計算機科學(xué)研究學(xué)會的Guido van Rossum 于1990 年代初設(shè)計,作為一門叫做ABC語言的替代品。 Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭ython語法和動態(tài)類型,以及解釋型語言的本質(zhì),使它成為多數(shù)平臺上寫腳本和快速開發(fā)應(yīng)用的編程語言, 隨著版本的'不斷更新和語言新功能的添加,逐漸被用于獨立的、大型項目的開發(fā)。
Python解釋器易于擴展,可以使用C或C++(或者其他可以通過C調(diào)用的語言)擴展新的功能和數(shù)據(jù)類型。 Python 也可用于可定制化軟件中的擴展程序語言。Python豐富的標(biāo)準(zhǔn)庫,提供了適用于各個主要系統(tǒng)平臺的源碼或機器碼。
def sushu(s):
if s = 1:
print("素數(shù)不能小于1")
i = 2
active = True
while i s:
if s % i == 0:
active = False
i += 1
if active:
print(str(s) + "是素數(shù)")
else:
print(str(s) + "不是素數(shù)")