约数和因数
本文最后更新于:2024年2月12日 晚上
GCD:最大公约数
时间复杂度:$O(logN)$
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
$x*y \% k = 0$,已知$x和k$,那么$y$必须满足为$\frac{k}{gcd(k, x)}$的倍数
最小公倍数:LCM
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
质因数分解
时间复杂度:$O(\sqrt N)$
public List<Integer> get(int n) {
List<Integer> res = new ArrayList<>();
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
while (n % i = 0) n /= i;
res.add(i);
}
}
if (n != 1) res.add(n);
return res;
}
本文作者: MerickBao
本文链接: https://merickbao.top/post/%E7%AE%97%E6%B3%95/%E6%95%B0%E5%AD%A6%E7%9F%A5%E8%AF%86/%E7%BA%A6%E6%95%B0%E5%92%8C%E5%9B%A0%E6%95%B0.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!