什么是唯一分解定理?
任何一个比1大的整数要么是质数,要么分解成质数的乘积,而且这种分解形式一定存在且唯一 N = p 1 q 1 p 2 q 2 . . . p k q k N=p1^{q1}p2^{q2}...pk^{qk} N=p1q1p2q2...pkqk
如何分解?
从小到达枚举所有质数,如果x能整除,就不停除,除尽为止。
def f(n):
factor=[]
for i in range(2,n+1):
#由于可能是素数,故有必要取到n
while n%i==0:
#只要能除,除尽为止
factor.append(i)
n//=i
if n==1:
break
因子数
根据乘法原理,每个数有选0个到选q个一共(1+q)种可能。
总共可以拆成的因子数为(1+q1)(1+q2)…(1+qk)