解題思路:需要實(shí)現(xiàn)兩個(gè)函數(shù),一個(gè)是判斷數(shù)字是否是素?cái)?shù);一個(gè)是求和函數(shù)。
垣曲網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),垣曲網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為垣曲超過(guò)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的垣曲做網(wǎng)站的公司定做!
實(shí)現(xiàn)函數(shù),判斷是否是素?cái)?shù),is_prime,具體代碼如下:
def is_prime(num):
"""
判斷是否是素?cái)?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
實(shí)現(xiàn)函數(shù),計(jì)算數(shù)字start到end之間的所有素?cái)?shù)之和,sum,具體代碼如下:
def sum(start, end):
"""
求閉區(qū)間[start, end]之間的素?cái)?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))
完整 代碼如下:
# 求200以內(nèi)所有素?cái)?shù)和
p = []
for i in range(2,201):
for j in range(2,int(i*(1/2))+1):
if i % j == 0:
break
else:
p.append(i)
print(f'200以內(nèi)所有素?cái)?shù)和為{sum(p)}')
程序縮進(jìn)如圖所示
你好的!
import?math
def?is_prime(n):??#?簡(jiǎn)化問(wèn)題,先利用函數(shù)判斷是否為質(zhì)數(shù)
if?n?==?1:??#?=是賦值,==才是判斷,切記切記
return?False
for?i?in?range(2,?int(math.sqrt(n))+1):??#?質(zhì)數(shù)判斷條件,注意+1
if?n?%?i?==?0:
return?False
return?True
primes?=?[]
name?=?int(input())
for?i?in?range(1,?name):??#?注意這個(gè)逗號(hào),很容易寫(xiě)錯(cuò)!
if?is_prime(i)?is?True:??#?bool值用is判斷
primes.append(i)
print('100以內(nèi)的素?cái)?shù):{}\n100以內(nèi)素?cái)?shù)和:{}'.format(primes,?sum(primes)))
歡迎追加懸賞并采納!
def prime(x):
for i in range(2,x):
if x%i==0:
return False
elif i==x-1:
return True
output=filter(prime,range(2,1001))#區(qū)分于map函數(shù)
output
b = list(output)
c = 0
for i in b:
c = c + i;
print(c)#我的是jupyter編譯器,如需要展示素?cái)?shù)直接print(b)