import math def factorization(n): ans = [] if n < 2: return [] while n % 2 == 0: ans.append(2) n >>= 1 i = 3 j = int(math.sqrt(n)) while i <= j: while n % i == 0: ans.append(i) n /= i j = int(math.sqrt(n)) i += 2 if n != 1: ans.append(int(n)) return ans print(factorization(1000000007)) print(factorization(1000000000039)) print(factorization(44414370)) print(factorization(44414370310900590))
Standard input is empty
[1000000007] [1000000000039] [2, 3, 3, 5, 7, 11, 13, 17, 29] [2, 3, 3, 5, 7, 11, 13, 17, 29, 1000000007]