dsalgo/
least_common_multiple_with_gcd_usize.rs

1use crate::greatest_common_divisor_euclidean::gcd;
2
3pub fn lcm(
4    a: usize,
5    b: usize,
6) -> usize {
7    if a == 0 && b == 0 {
8        0
9    } else {
10        a / gcd(a, b) * b
11    }
12}
13
14#[cfg(test)]
15
16mod tests {
17
18    use super::*;
19
20    #[test]
21
22    fn test() {
23        assert_eq!(lcm(0, 0), 0);
24
25        assert_eq!(lcm(1, 0), 0);
26
27        assert_eq!(lcm(12, 18), 36);
28
29        assert_eq!(lcm(6, 8), 24);
30    }
31}