算法竞赛进阶指南,138页,阶乘的素因子分解
本题要点:
1、直接套用阶乘的质因数分解公式, n的阶乘中,n! 含有素数p 的因子个数为
[n / p] + [n / p^2] + [n / p^3] + … + [n / p^k] + …
2、先用线性筛法打个素数表, 然后扫描素数表,对于每一个 p <= n 的素数,
执行上面的公式计算素因子的个数。
3、 比较 p^k 和 n的大小关系,使用 long long
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int MaxN = 1000010;
int prime[MaxN], v[MaxN];
long long n;
int pNum;
int fac[MaxN];
long long fac_cnt[MaxN]