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}