dsalgo/gcds_for_lcm.rs
1use crate::find_divisors_trial_division_u64::find_divisors;
2
3/// \lcm(a_0, ...a_{n-1}) = `lcm`
4
5pub fn gcds_for_lcm(
6 n: usize,
7 lcm: u64,
8) -> Vec<u64> {
9 match n {
10 0 => {
11 assert!(lcm == 1);
12
13 vec![0]
14 }
15 1 => {
16 vec![lcm]
17 }
18 _ => {
19 assert!(lcm > 0); // n > 1 and lcm = 0 -> undefined.
20 find_divisors(lcm)
21 }
22 }
23}
24
25// TODO:
26#[cfg(test)]
27
28mod tests {
29
30 #[test]
31
32 fn test() {}
33}