yuezonghe | 824eb0c | 2024-06-27 02:32:26 -0700 | [diff] [blame] | 1 | #include <linux/kernel.h> |
2 | #include <linux/gcd.h> | ||||
3 | #include <linux/export.h> | ||||
4 | |||||
5 | /* Greatest common divisor */ | ||||
6 | unsigned long gcd(unsigned long a, unsigned long b) | ||||
7 | { | ||||
8 | unsigned long r; | ||||
9 | |||||
10 | if (a < b) | ||||
11 | swap(a, b); | ||||
12 | |||||
13 | if (!b) | ||||
14 | return a; | ||||
15 | while ((r = a % b) != 0) { | ||||
16 | a = b; | ||||
17 | b = r; | ||||
18 | } | ||||
19 | return b; | ||||
20 | } | ||||
21 | EXPORT_SYMBOL_GPL(gcd); |