python练习题——将正整数分解质因数

题目:将一个正整数分解质因数。

 

用例:输入:90

   输出:90=2*3*3*5

 

程序分析:

  1、对n进行分解因数,应该先找到一个最小的质数m

  2、如果该质数m等于n,那么循环结束

  3、如果该质数m小于n,那么将n/m作为新n,再找到新n的最小质数新m……

  4、如果循环过程中n不能被m整除,那么令m=m+1,重复

 

代码:

 1 num = int(input("输入一个数:"))
 2 #因为输出格式中不存在空格,所以我把打印分开写了
 3 print(num, end='')
 4 print('=', end='')
 5 i = 1
 6 #用for循环的话是不能改变循环次数的,如果要改变循环次数的话最好用while。
 7 while i <= num + 1:
 8     #通过判断余数是否为0,得出是否能整除    
 9     mid = num % i
10     if mid == 0:
11         print(i, end='')
12         #python经过除法后默认把类型转为浮点,所以为了保险,强制类型转换为int
13         num = int(num / i)
14         i = 1
15         #为了控制输出的乘号,加了一个判断条件,当num为1时说明没有质子了
16         if num != 1:
17             print('*', end='')
18     i += 1

 

posted @ 2019-08-30 14:42  喵喵喵喵?  阅读(5463)  评论(0编辑  收藏  举报