【基础】练习册31-Python3_正整数分解质因数2

代码如下:

# 题目:将一个正整数分解质因数。例如:输入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='')

你可能感兴趣的:(【基础】练习册31-Python3_正整数分解质因数2)