C++ アルゴリズムとデータ構造のライブラリ
#include "library/number/prime/prime_fact.hpp"<素因数, 個数>のmapを作る$O(\sqrt N)$
map<int, int> pf = prime_fact(N);
#pragma once
map<int, int> prime_fact(int N) {
map<int, int> P;
for (int i = 2; i * i <= N; ++i) {
while (N % i == 0) {
++P[i];
N /= i;
}
}
if (N > 1) ++P[N];
return P;
}#line 2 "library/number/prime/prime_fact.hpp"
map<int, int> prime_fact(int N) {
map<int, int> P;
for (int i = 2; i * i <= N; ++i) {
while (N % i == 0) {
++P[i];
N /= i;
}
}
if (N > 1) ++P[N];
return P;
}