【python】编程语言入门经典100例--14-阿里云开发者社区

开发者社区> 开发与运维> 正文

【python】编程语言入门经典100例--14

简介:

  1 #题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。


代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  2 import pdb
  3 tmp = int(input('请输入一个正整数:'))
  4 print('%d='%tmp,end = '')
  5 
  6 = 2
  7 li = []
  8 #pdb.set_trace()
  9 while i > 1:
 10     if tmp%== 0:
 11         tmp = tmp/i
 12         li.append(i)
 13         = 1
 14         if tmp == 1:
 15             = 0
 16     += 1
 17 for in li[:len(li)-1]:
 18     print('%d*'%x,end='')
 19 print(li[-1])
~


运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@HK code_100]# python code_14.py 
请输入一个正整数:1000
1000=2*2*2*5*5*5
[root@HK code_100]# python code_14.py 
请输入一个正整数:69873
69873=3*23291
[root@HK code_100]# python code_14.py 
请输入一个正整数:208628064
208628064=2*2*2*2*2*3*3*724403
[root@HK code_100]# python code_14.py 
请输入一个正整数:90
90=2*3*3*5
[root@HK code_100]# python code_14.py 
请输入一个正整数:879236872432
879236872432=2*2*2*2*17099*3213773
[root@HK code_100]#


代码解释:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  2 import pdb
  3 tmp = int(input('请输入一个正整数:'))    #接收输入数字,并转换成int模式
  4 print('%d='%tmp,end = '')                 #格式化输出
  5 
  6 = 2                                    #求质数从2开始除
  7 li = []                                    #定义一个空的列表
  8 #pdb.set_trace()
  9 while i > 1:                              #开启while循环
 10     if tmp%== 0:                        #这个数字从2开始做除法,如果余数为0说明,这个数就是tmp的质数
 11         tmp = tmp/i                        #tmp相应的获取除以后的值
 12         li.append(i)                        #将可以把tmp整除的数添加到列表li[]
 13         = 1                            #当有一个数字可以整除tmp时,将i重置重新开始循环
 14         if tmp == 1:                    #当tmp被除等于1时,说明tmp被除尽
 15             = 0                        #通过赋值i=0,结束while循环
 16     += 1                            #每次计算后,i+1,依次进行除法测试,从2开始向后除,能够取到的数字应该都是质数,比方说,在除以4之前,一定可以被2整除,所以不会出现被非质数进行除的情况
 17 for in li[:len(li)-1]:                #遍历这个li列表的前n-1个数
 18     print('%d*'%x,end='')                #格式化输出这n-1个数
 19 print(li[-1])                        #格式化输出li的最后一个数,最后三行代码主要是要达到题目中li列表所有元素相乘的格式
~






      本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1745973,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章