码迷,mamicode.com
首页 > 编程语言 > 详细

Python核心编程课后习题一

时间:2015-01-09 14:15:50      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

第八章

8-6.素因子分解。以刚才练习中的isprime()和getfactors()函数为基础编写一个函数,它接受一个整型作为参数,返回该整型所有素数因子的列表。这个过程叫做求素因子分解,它输出的所有因子之积应该是原来的数字。注意列表里可能有重复的元素。例如输入20,返回结果应该是[2,2,5].

下面是我解决这题的代码:

 1 import math
 2 num = int(raw_input(please input a number: ))
 3 def getfactors(num):
 4     seq = []
 5     for each in range(2,num+1):
 6         if num % each == 0:
 7             seq.append(each)
 8     return seq
 9 def isprime(i):
10     for each in range(2,int(math.sqrt(i)+1)):
11         if i % each == 0:
12             return False
13         else:
14             continue
15     return True
16 result = getfactors(num)
17 data = [x for x in result if isprime(x)]
18 myresult = data
19 def solve(data,num):
20     for j in data:
21         num /= j
22     if num != 1:
23         result = getfactors(num)
24         data = [x for x in result if isprime(x)]
25         myresult.extend(data)
26         solve(data,num)
27     else:
28         print sorted(myresult)
29 solve(data,num)

 

Python核心编程课后习题一

标签:

原文地址:http://www.cnblogs.com/Gklee2014/p/4213075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!