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}