首页 > 代码库 > Python核心编程课后习题一
Python核心编程课后习题一
第八章
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 False13 else:14 continue15 return True16 result = getfactors(num)17 data = http://www.mamicode.com/[x for x in result if isprime(x)]18 myresult = data19 def solve(data,num):20 for j in data:21 num /= j22 if num != 1:23 result = getfactors(num)24 data = http://www.mamicode.com/[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核心编程课后习题一
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。