m=int(input('请输入一个正整数'))
list=[]
list2=[]
if m>0:
#寻找小于或等于m的所有质数
for m1 in range(2,m):
for i in range(2,m1):
if m1 % i == 0:
break #当被其他数整除后则跳出该数的判断,去下一个数
else:
list.append(m1)
#到了此处为了方便下面while循环的判断,加多一个数比较方便
list.insert(0,1)
print(list)
i=-1
m2=m
#对所有能整除她的质因数进行判断,当被整除的数到达1后跳出
while list[i] != 1:
b=int(m2 % list[i])
if b == 0:
m2 = int(m2 / list[i])
list2.append(list[i])
continue
#此处要注意质因数可能有重复的情况,所以必须要进行整除后要检查是否能再进行整除
i = i - 1
if list2:
print(list2)
m3 = m
while list2:
h=list2.pop() #将里面的数弹出,并列出来
m3 =str(h)
print(m3,end='') #强制不进行转行
if list2:
print(' * ',end='')
#这里为什么要分开写,因为假如写在一起的话最后就会多出一个*
f='='+str(m)
print(f,end='')
else:
# 对没有质因数的判断
print('该数的质因数就是它本身!!!')
else:
# 限制输入
print('输入的数应该是一个正整数!!!')
python初学者,一个复杂的方法,希望高手指点优化