Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
gcd.c
Go to the documentation of this file.
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 }