1. 程式人生 > >找出指定數字的所有質因數,比如:90=2*3*3*5。

找出指定數字的所有質因數,比如:90=2*3*3*5。

while style turn emp port pri sqrt return opera

 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。