|
original poster
hbghlyj
posted 2023-3-14 09:11
最长的链
- def get_power_factors(n):
- factors=[1]
- i = 2
- while i*i <= n:
- power = 2
- if n % (i*i) == 0:
- if len(factors)<2:
- factors.append(i)
- else:
- factors[1]*=i
- n//=i*i
- factors[0]*=i
- while n % i == 0:
- power += 1
- if len(factors)<power:
- factors.append(i)
- else:
- factors[power-1]*=i
- n //= i
- i += 1
- factors[0]*=n
- return factors
Copy the Code 测试
60
[30,2]
99
[33,3]
108
[6,6,3]
288
[6, 6, 2, 2, 2]
5760
[30, 6, 2, 2, 2, 2, 2] |
|