pub trait Divisors { type Output; // Required method fn divisors(self) -> Self::Output; }
約数列挙。
$O(\sqrt{n})$ time, $O(1)$ space.
use nekolib::math::Divisors; let div: Vec<_> = 60_u64.divisors().collect(); assert_eq!(div, [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60]);