This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
module Math
|
||||
|
||||
# Greatest common divisor of +m+ and +n+, +nil+ for non-positive
|
||||
# numbers - gcd is computed by means of the Euclidian algorithm.
|
||||
def self.gcd(m, n)
|
||||
m = Integer(m)
|
||||
n = Integer(n)
|
||||
if m <= 0 || n <= 0
|
||||
return nil
|
||||
end
|
||||
loop {
|
||||
if m < n
|
||||
m, n = n, m
|
||||
end
|
||||
if (l = m % n) == 0
|
||||
break
|
||||
end
|
||||
m = l
|
||||
}
|
||||
n
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user