将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
num = input("请输入一个合数:")
if num.isdigit():
num = int(num)
else:
print("输入非法,请输入一个合数")
exit()
if num < 2:
print("请输入一个大于2的合数")
exit()
def isZhishu(num): # 判断是否是质数
for i in range(2, num):
if num % i == 0: # 不是质数
return False
else:
return True
l0 = []
def fenjie(num):
i = 2
while i < num + 1:
if num % i == 0:
l0.append(i)
num /= i
else:
i += 1
if not isZhishu(num):
fenjie(num)
str0 = ‘‘
for i in l0:
str0 = str0 + str(i) + "*"
str0 = str0[:-1] # 去掉最后一个星号
print("%s=%s" % (num, str0))
else:
print("%s是一个质数,请输入一个合数" %num)
原文:https://www.cnblogs.com/hiuhungwan/p/10372503.html