把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。
Python练习题问题如下:
要求:将一个正整数分解质因数;例如您输入90,分解打印90=2*3*3*5。
Python解题思路分析:
这道题需要分三部分来分解,具体分解说明如下。
1、首先当这个质数恰等于n的情况下,则说明分解质因数的过程已经结束,打印出即可。
2、如果遇到n<>k,但n能被k整除的情况,则应打印出k的值。同时用n除以k的商,作为新的正整数你n,之后再重复执行第一步的操作。
3、如果n不能被k整除时,那么用k+1作为k的值,再来重复执行第一步的操作系统。
def reduceNum(n):
print ('{} = '.format(n))
if not isinstance(n, int) or n <= 0 :
print ('请输入一个正确的数字')
exit(0)
elif n in [1] :
# 如果 n 为 1
print('{}'.format(n))
while n not in [1] : # 循环保证递归
for index in range(2, n + 1) :
if n % index == 0:
n //= index # n 等于 n//index
if n == 1:
print (index)
else : # index 一定是素数
print ('{} *'.format(index),end = " ")
break
reduceNum(90)
reduceNum(100)
2020-05-18