首页 > 代码库 > 找出指定数字的所有质因数,比如:90=2*3*3*5。
找出指定数字的所有质因数,比如:90=2*3*3*5。
1 from math import sqrt 2 from functools import reduce 3 from operator import mul 4 5 def is_prime(n): 6 for k in range(2, int(sqrt(n))+1): 7 if n % k == 0: 8 return False 9 return True 10 11 def get_prime(num): 12 temp = [] 13 for i in range(2, num+1): 14 if num % i == 0 and is_prime(i): 15 temp.append(i) 16 return temp 17 18 def final_factor(num): 19 prime_factor = get_prime(num) 20 while reduce(mul, prime_factor) < num: 21 mid_calc = reduce(mul, prime_factor) 22 prime_factor.extend(get_prime(num//mid_calc)) 23 return sorted(prime_factor)
结果:[2, 3, 3, 5]
找出指定数字的所有质因数,比如:90=2*3*3*5。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。