代码如下:
# 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
#程序注意:正数、负数、0三种的输入和打印的不同;因子的求解;分解因数的打印
#方法一:利用列表append添加因数
num=int(input('请输入一个整数:'))
if num==0:
#特殊处理 输入0的情况
print('该数为0,请重新输入!')
exit()
k=num
lst=[]
flag=0
if(num<0):
#复数的处理
flag=1
num=abs(num)
n=num
for i in range(int(n/2)+1):
#找出输入数字的分解因子
#range对象只能是正整数,n/2可能产生小数,且m/2是最大循环次数
#循环次数:n最大的因子是本身(质数),最小的因子是2
for j in range(2,n):
if(num%j==0):
lst.append(j)
num=num//j
break
if(len(lst)==0):
#没有因子的质数判断
print('该数为质数,请重新输入!')
exit()
print('%d='%k,end='')
if flag==1:
#负数打印需添加符号
print('-1*',end='')
for k in range(len(lst)):
#lst[]数列打印出来,最后一个数字需要有区分
if k==len(lst)-1:
print('%s'%lst[k])
else:
print('%s*'%lst[k],end='')