diff options
Diffstat (limited to 'common/algorithm.h')
-rw-r--r-- | common/algorithm.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/common/algorithm.h b/common/algorithm.h index 9d22af4090..b34d6f852d 100644 --- a/common/algorithm.h +++ b/common/algorithm.h @@ -242,13 +242,17 @@ void sort(T first, T last) { */ template<class T> T gcd(T a, T b) { - if (a <= 0) a = -a; - if (b <= 0) b = -b; + if (a <= 0) + a = -a; + if (b <= 0) + b = -b; + while (a > 0) { T tmp = a; a = b % a; b = tmp; } + return b; } |