题目:
编写程序,用户输入一个合数,将其分解为质因式输出,如:60=223*5,每个因子都是质数,质数判断过程在一个自定义函数内完成。
代码:
def isprime(n):
import math
if n <= 1:
return False
r = int(math.sqrt(n))
for i in range(2,r+1):
if n % i == 0:
return False
return True
while True:
try:
n = int(input('请输入一个大于0的整数:'))
if not isprime(n) and n > 2:
break
except:
continue
m = n
i = 2
s = ""
while i <= m:
if m%i == 0 and isprime(i):
s = s+str(i)+'*'
m=m//i
else:
i+=1
print('分解质因数的结果为:{}={}'.format(n,s[:-1]))