nlogn分解质因数 - SPF(目前以学习最快分解质因数)
构建最小质因数表spf
const int MAXN = 5000005;
int spf[MAXN]; // smallest prime factor
void init() {
for (int i = 2; i < MAXN; ++i) {
if (spf[i] == 0) {
for (int j = i; j < MAXN; j += i) {
if (spf[j] == 0) spf[j] = i;
}
}
}
}
每次除以最小质因数
vector
vector
while (x > 1) {
int p = spf[x];
while (x % p == 0) {
res.push_back(p);
x /= p;
}
}
return res;
}
就能分解完质因数了

浙公网安备 33010602011771号