【基礎(chǔ)】練習(xí)冊(cè)31-Python3_正整數(shù)分解質(zhì)因數(shù)2

代碼如下:

# 題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5

#程序注意:正數(shù)、負(fù)數(shù)、0三種的輸入和打印的不同;因子的求解;分解因數(shù)的打印

#方法一:利用列表append添加因數(shù)

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

if num==0:

? ? #特殊處理 輸入0的情況

? ? print('該數(shù)為0,請(qǐng)重新輸入!')

? ? exit()

k=num

lst=[]

flag=0

if(num<0):

? ? #復(fù)數(shù)的處理

? ? flag=1

? ? num=abs(num)

n=num

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

? ? #找出輸入數(shù)字的分解因子

? ? #range對(duì)象只能是正整數(shù),n/2可能產(chǎn)生小數(shù),且m/2是最大循環(huán)次數(shù)

? ? #循環(huán)次數(shù):n最大的因子是本身(質(zhì)數(shù)),最小的因子是2

? ? for j in range(2,n):

? ? ? ? if(num%j==0):

? ? ? ? ? ? lst.append(j)

? ? ? ? ? ? num=num//j

? ? ? ? ? ? break

if(len(lst)==0):

? ? #沒有因子的質(zhì)數(shù)判斷

? ? print('該數(shù)為質(zhì)數(shù),請(qǐng)重新輸入!')

? ? exit()

print('%d='%k,end='')

if flag==1:

? ? #負(fù)數(shù)打印需添加符號(hào)

? ? print('-1*',end='')

for k in range(len(lst)):

? ? #lst[]數(shù)列打印出來,最后一個(gè)數(shù)字需要有區(qū)分

? ? if k==len(lst)-1:

? ? ? ? print('%s'%lst[k])

? ? else:

? ? ? ? print('%s*'%lst[k],end='')

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容