python函數(shù)求因子 python求因子之和

python輸入一個(gè)正整數(shù),求該數(shù)所有的因數(shù)

# 2021-05-17 Luke

金鄉(xiāng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

while True:

num = input("請(qǐng)輸入一個(gè)正整數(shù):")

i = 1

num_count = []

while i = int(num):

if int(num) % i == 0:

num_count.append(i)

i += 1

print(num + "的公因數(shù)有:")

print(*num_count)

Python編寫(xiě)函數(shù).求出一個(gè)數(shù)除了1和自身以外的因子。

def?fun(n:?int):

L?=?[?]

for?i?in?range(2,?n?//?2?+?1):

if?not?n?%?i:

L.append(i)

return?L

print(fun(256))

一個(gè)Python函數(shù),求一個(gè)數(shù)質(zhì)因子,總是報(bào)錯(cuò)?

1. 首先解決你的語(yǔ)法問(wèn)題

i和j是局部變量,只在當(dāng)前for循環(huán)的語(yǔ)句內(nèi)有效,所以,你的if j==i這一句就訪問(wèn)了一個(gè)失效的變量j,同樣你的遞歸調(diào)用一樣訪問(wèn)了j,因此我建議你在外層循環(huán)上面加上一句i = j = 2(反正賦初值不要用0就行,因?yàn)槟愕倪f歸調(diào)用k/j可能造成除0異常)

2. 算法問(wèn)題

你采用了遞歸求解,k==1作為遞歸退出條件本身是正確的,而作為參數(shù)合法性判斷則顯得有些不足,我建議應(yīng)該修改為k = 1。

另外,你的算法會(huì)存在一個(gè)不影響正常功能的小缺陷,那就是可能重復(fù)打印質(zhì)因子,比如算100的質(zhì)因子,就會(huì)重復(fù)打印出兩個(gè)2和兩個(gè)5,因?yàn)橄人愠?00的質(zhì)因子2以后,接著算100/2的質(zhì)因子,而50同樣存在質(zhì)因子2,整個(gè)過(guò)程就變成了

kj(100)

kj(50)

kj(25)

kj(5)

因此結(jié)果是

2

2

5

5

關(guān)于這一點(diǎn),你可以忽略不計(jì),或者通過(guò)調(diào)整代碼自己進(jìn)行規(guī)避

希望我的回答能夠?qū)δ阌兴鶐椭?/p>

分享標(biāo)題:python函數(shù)求因子 python求因子之和
URL地址:http://www.muchs.cn/article18/docsggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣外貿(mào)建站、品牌網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)