1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| #include <linux/compiler.h>
| #include <linux/gcd.h>
| #include <linux/export.h>
| #include <linux/lcm.h>
|
| /* Lowest common multiple */
| unsigned long lcm(unsigned long a, unsigned long b)
| {
| if (a && b)
| return (a / gcd(a, b)) * b;
| else
| return 0;
| }
| EXPORT_SYMBOL_GPL(lcm);
|
| unsigned long lcm_not_zero(unsigned long a, unsigned long b)
| {
| unsigned long l = lcm(a, b);
|
| if (l)
| return l;
|
| return (b ? : a);
| }
| EXPORT_SYMBOL_GPL(lcm_not_zero);
|
|