唯一分解定理(模板)

唯一分解定理,找出一个数n的所有素因子

typedef long long ll;
ll fac[10050], num;//素因数,素因数的个数
void init(ll n) {//唯一分解定理
    num = 0;
    ll cpy = n;
    int m = (int)sqrt(n + 0.5);
    for (int i = 2; i <= m; ++i) {
        if (cpy % i == 0) {
            fac[num++] = i;
            while (cpy % i == 0) cpy /= i;
        }
    }
    if (cpy > 1) fac[num++] = cpy;
}
posted @ 2018-02-25 20:52  不想吃WA的咸鱼  阅读(116)  评论(0编辑  收藏  举报