n=int(input("please?input?a?integer?n:"))

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供會(huì)昌網(wǎng)站建設(shè)、會(huì)昌做網(wǎng)站、會(huì)昌網(wǎng)站設(shè)計(jì)、會(huì)昌網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、會(huì)昌企業(yè)網(wǎng)站模板建站服務(wù),十余年會(huì)昌做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
result?=0
for?i?in?range(1,n):
if?n%i==0:result+=i
print("the?factor?of?n?sum?is?:%d"%result)
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))
def yz(a):
yz=[]
he=0
for i in range(a):
ii = i+1
if a%ii==0:
yz.append(ii)
for h in yz:
he+=h
return he
if __name__ == '__main__':
a = int(input('輸入一個(gè)整數(shù):'))
print(yz(a))
不考慮效率的話,因數(shù)和就直接用所有小于x的正整數(shù)試商即可,因此,可以寫成:
1. 首先解決你的語(yǔ)法問題
i和j是局部變量,只在當(dāng)前for循環(huán)的語(yǔ)句內(nèi)有效,所以,你的if j==i這一句就訪問了一個(gè)失效的變量j,同樣你的遞歸調(diào)用一樣訪問了j,因此我建議你在外層循環(huán)上面加上一句i = j = 2(反正賦初值不要用0就行,因?yàn)槟愕倪f歸調(diào)用k/j可能造成除0異常)
2. 算法問題
你采用了遞歸求解,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è)過程就變成了
kj(100)
kj(50)
kj(25)
kj(5)
因此結(jié)果是
2
2
5
5
關(guān)于這一點(diǎn),你可以忽略不計(jì),或者通過調(diào)整代碼自己進(jìn)行規(guī)避
希望我的回答能夠?qū)δ阌兴鶐椭?/p>
這個(gè)其實(shí)很簡(jiǎn)單,思路是通過列表推導(dǎo)式生成三個(gè)2位數(shù)的隨機(jī)數(shù),再通過max內(nèi)建函數(shù)取最大數(shù)
上代碼了
max( [random.randint(10, 99) for i in range(3)])
本文題目:python的因子函數(shù)題,Python找因子
標(biāo)題路徑:http://chinadenli.net/article21/dsgggcd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、搜索引擎優(yōu)化、動(dòng)態(tài)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站改版、全網(wǎng)營(yí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)