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

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

代码:

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

运行结果:

[[email protected] code_100]# python code_14.py 
请输入一个正整数:1000
1000=2*2*2*5*5*5
[[email protected] code_100]# python code_14.py 
请输入一个正整数:69873
69873=3*23291
[[email protected] code_100]# python code_14.py 
请输入一个正整数:208628064
208628064=2*2*2*2*2*3*3*724403
[[email protected] code_100]# python code_14.py 
请输入一个正整数:90
90=2*3*3*5
[[email protected] code_100]# python code_14.py 
请输入一个正整数:879236872432
879236872432=2*2*2*2*17099*3213773
[[email protected] code_100]#

代码解释:

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

【python】编程语言入门经典100例--14的相关文章

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

1 #题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 代码:   2    3 li = list(input('输入一个不多于5位的正整数:'))   4 n = len(li)   5 print('这个正整数是%d位数'%n)   6 i = 0   7    8 def order(li,n,i):   9     if i <= n-1-i:  10          tmp = li[i]  11          li[i] = li[n-1-i]

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

题目:输出9*9口诀 代码:   2    3 for i in range(1,10):   4     for j in range(1,10):   5             if j < i:   6                 print('%d*%d=%d '%(j,i,i*j),end = '')          7             elif i == j:   8                 print('%d*%d=%d'%(j,i,i*j)) 运行结果:

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

1 #题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 代码:   2    3 h = 0   4 li = []   5 for i in range(1,11):   6     s = 100/(2**(i-1))   7     li.append(s)   8    9 for x in li:  10     h += x  11 print(li)  12 print('球在第十次落地时,共经过了%.1

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

1 #题目:对10个数进行排序 代码:   2 i = 1   3 li = []   4 while i <= 10:   5     li.append(int(input('请输入第%d个数字:'%i)))   6     i += 1   7 print('这十个数分别为:')   8 print(li)   9   10 liorder = []  11 x = 0   12 while x == 0:  13     if li != []:  14         m = li[0

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

1 #题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后问第一个人,他说是10岁.请问第五个人多大? 代码:   2    3 li = [0]*5   4 li[0] = 10   5 for i in range(1,5):   6     li[i] = li[i-1] + 2   7 print('第五个人是%d岁'%li[4]) 运行结果: [[email prote

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

1 #题目:利用递归方法求5!. 代码:   2 def fac(n):   3     if n == 1:   4         return 1   5     return n*fac(n-1)   6 print('5的阶乘是%d'%fac(5)) 运行结果: [[email protected] code_100]# python code_26.py  5的阶乘是120 [[email protected] code_100]# 代码解释:  思路:递归一般使用函数的形式,在函数

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

1 #题目:判断101-200之间有多少个素数,并输出所有素数. 代码:   3 tmp = [n for n in range(101,201)]   4 for i in reversed(tmp):   5     for j in range(2,i):   6         if (i%j == 0):   7             tmp.remove(i)   8             break   9 print('101到200之间有%d个素数'%len(tmp))  

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

1 #题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 代码:   2    3 for i in range(1,1001):   4     s = 0   5     for j in range(1,i):   6         if i%j == 0:   7             s += j   8     if s == i:   9         print(i) 运行结果: [[email pro

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

1 #题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 代码:   2    3 num = int(input('请输入需要相加的数字:'))   4 m = int(input('请输入需要相加的次数:'))   5 s = 0   6 for j in range(1,m+1):   7     for i in range(1,j+1):   8         s +=