@xingxing
2017-01-16T12:46:38.000000Z
字数 395
阅读 1088
质因数分解(筛素数or暴力分解)
质因数分解,这里是关于n!的约数个数。
1、唯一分解定理:
算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 N=P1^a1*P2^a2*P3^a3......Pn^an,这里P1
此时P的约数个数就是这些幂的组合,对于每个质因数有a_i+1种选取方法(0个,1个,……,a_i个)。然后对于n!中的每个数n,n-1,……,2,求出p_i的个数a_i(用 a_i += n / p_i,n /= p_i 直到n < p_i)。接着,就应该筛出合理范围的p_i.
例: http://abc052.contest.atcoder.jp/
2、暴力分解:
对于n!,1~n中每个数对2~n分解因数,由于从小到大,所以能够保证,分解的因数都是质因数。然后将每个数的某个质因数的个数加起来保存到数组里,最后将这些个数+1相乘,就是结果。