Logo
No results found.
約数列挙
Overview

約数列挙

July 29, 2024
1 min read

用途

与えられた自然数の約数を列挙する.

計算量

O(n)O(\sqrt{n})

使い方

例えばdivisor(12)をすると, vector<int>{1,2,3,4,6,12}が返ってくる. 昇順であることが保証される.

実装

vector<int> divisor(int n) {
vector<int> head, tail;
for (int i = 1; i * i <= n; i++) {
if (n % i == 0) {
head.push_back(i);
if (i * i != n)
tail.push_back(n / i);
}
}
head.insert(head.end(), tail.rbegin(), tail.rend());
return head;
}

Verify

//TODO

Downloading for offline use...