def is_prime(n):
成都創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:自適應(yīng)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動的體驗,以及在手機等移動端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運營、VI設(shè)計、云產(chǎn)品.運維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務(wù)。
list_num = []
for i in range(2, n):
for num in range(2, int(sqrt(n))+1):
if i % num == 0 and i != num:
break
elif i % num != 0 and num == (int(sqrt(n))):
list_num.append(i)
return list_num
not 0表示非0 返回真,0返回假
print reduce(
lambda l,y: #遞減的操作函數(shù)
(not 0 in map(lambda x:y % x, l)) and (l+[y]) or l, #l是一個列表[], 結(jié)果l中后加入的數(shù)不能被前數(shù)整除,被整除則不添加后數(shù)
xrange(2,1000), #范圍[2,1000)
[] )
過程是:
測試到6, 就把6依次整除之前的l=[2,3,5] ,除2余0,就放棄6。l仍是[2,3,5]
測試到7, 就把7依次整除之前的l=[2,3,5] ,除2都不余0,加入6。l變成[2,3,5,7]
最后得到一個純素數(shù)的列表[];
1、定義判斷素數(shù)的函數(shù)isPrime
import math
def isPrime(num):
sqt = int(math.sqrt(num))
for i in range(2, sqt + 1):
if num % i == 0:
return False
return True
2、調(diào)用函數(shù)并打印結(jié)果
a = int(input("請輸入一個數(shù)字:"))
if isPrime(a):
print(a)
else:
print("不是素數(shù)")
3、驗證結(jié)果
(1)輸入的是素數(shù)
請輸入一個數(shù)字:3
3
(2)輸入的不是素數(shù)
請輸入一個數(shù)字:12
不是素數(shù)
具體步驟如下:
1、打開pycharm,點擊file,點擊new,新建一個空白的pyrthon文件:
2、這里開始編寫判斷素數(shù)的代碼,判斷素數(shù)的上限最準確的應(yīng)該使用平方根取整加一,此處用到兩層循環(huán),第一層遍歷0到100的數(shù),第二層循環(huán)判斷滿足條件的素數(shù)。這里有一個else要注意是和for對齊而不是if對齊,如果和if對齊只要不能被2整除就會被添加到列表中了,而且會多次添加:
3、右鍵點擊鼠標,點擊“run?demo”,運行編寫好的python文件,在下方的控制臺就可以看見輸出后結(jié)果:
解題思路:需要實現(xiàn)兩個函數(shù),一個是判斷數(shù)字是否是素數(shù);一個是求和函數(shù)。
實現(xiàn)函數(shù),判斷是否是素數(shù),is_prime,具體代碼如下:
def is_prime(num):
"""
判斷是否是素數(shù).
:param num:
:return:
"""
result = True
# 質(zhì)數(shù)大于 1
if num 1:
? # 查看因子
? for i in range(2, num):
? ? ? if (num % i) == 0:
? ? ? ? ? result = False
? ? ? ? ? break
? else:
? ? ? result = True
# 如果輸入的數(shù)字小于或等于 1,不是質(zhì)數(shù)
else:
? result = False
return result
實現(xiàn)函數(shù),計算數(shù)字start到end之間的所有素數(shù)之和,sum,具體代碼如下:
def sum(start, end):
"""
求閉區(qū)間[start, end]之間的素數(shù)之和.
: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
在main函數(shù)中調(diào)用求和,代碼如下:
if __name__ == '__main__':
num = 8
print(is_prime(num))
num = 5
print(is_prime(num))
print(sum(1, 5))
完整 代碼如下:
新聞標題:python不用函數(shù)素數(shù),python函數(shù)求素數(shù)
文章位置:http://chinadenli.net/article10/hespgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、營銷型網(wǎng)站建設(shè)、建站公司、搜索引擎優(yōu)化、網(wǎng)站設(shè)計公司、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)