Logo
No results found.
素因数分解
Overview

素因数分解

July 29, 2024
1 min read

用途

与えられた自然数を素因数分解する.

計算量

O(nlnn)O\left(\dfrac{n}{\ln n}\right)

使い方

例えばprimeFactrize(12)をすると, {(2,2),(3,1)}が返ってくる.これは2231=122^2 \cdot 3^1 = 12を意味している.

実装

vector<pair<int, int>> primeFactorize(int n) {
vector<pair<int, int>> res;
for (int a = 2; a * a <= n; ++a) {
if (n % a == 0) {
res.push_back({a, 0});
while (n % a == 0)
++res.back().second, n /= a;
}
}
if (n != 1)
res.push_back({n, 1});
return res;
}

Verify

//TODO

Downloading for offline use...