Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 #include <linux/compiler.h>
0003 #include <linux/gcd.h>
0004 #include <linux/export.h>
0005 #include <linux/lcm.h>
0006 
0007 /* Lowest common multiple */
0008 unsigned long lcm(unsigned long a, unsigned long b)
0009 {
0010     if (a && b)
0011         return (a / gcd(a, b)) * b;
0012     else
0013         return 0;
0014 }
0015 EXPORT_SYMBOL_GPL(lcm);
0016 
0017 unsigned long lcm_not_zero(unsigned long a, unsigned long b)
0018 {
0019     unsigned long l = lcm(a, b);
0020 
0021     if (l)
0022         return l;
0023 
0024     return (b ? : a);
0025 }
0026 EXPORT_SYMBOL_GPL(lcm_not_zero);