将一个正整数分解质因数。例如:输入90,打印出90=2 * 3 * 3 * 5。
案例分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
1 def reduceNum(n):
2 print ('{} = '.format(n), end=" ")
3 if not isinstance(n, int) or n <= 0 :
4 print ('请输入一个正确的数字 !')
5 exit(0)
6 elif n in [1] :
7 print ('{}'.format(n))
8 while n not in [1] : # 循环保证递归
9 for index in range(2, n + 1) :
10 if n % index == 0:
11 n //= index # n 等于 n//index
12 if n == 1:
13 print (index )
14 else : # index 一定是素数
15 print ('{} *'.format(index), end=" ")
16 break
reduceNum(90)
reduceNum(100)
以上实例输出结果为:
90 = 2 * 3 * 3 * 5
100 = 2 * 2 * 5 * 5
代码解读:
1.1构造一个函数,参数为n
2.打印并格式化输出format()
3.判断不是正整数或者小于等于0,提示'请输入一个正确的数字 !',并继续下一步
4.n = 1的时候 直接打印
5.判断n不再列表[1]中循环
6.遍历(2, n + 1)做下面判断
7.判断n % index == 0是不是整除,也就是偶数,余数为0,继续做除法运算
8.如果n等于1就打印
本文由mdnice多平台发布