Python 实例12

171 阅读1分钟

将一个正整数分解质因数。例如:输入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多平台发布