Sha256: 4e0cf3eb3e1d0f0e1b65eb6e0d741fcc0fe46eabfce3fc5069371b55068ed3f3

Contents?: true

Size: 396 Bytes

Versions: 9

Compression:

Stored size: 396 Bytes

Contents

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

Version data entries

9 entries across 8 versions & 2 rubygems

Version Path
facets-glimmer-3.2.0 lib/standard/facets/math/gcd.rb
facets-3.1.0 lib/standard/facets/math/gcd.rb
facets-3.0.0 lib/standard/facets/math/gcd.rb
facets-2.9.3 lib/standard/facets/math/gcd.rb
facets-2.9.2 lib/standard/facets/math/gcd.rb
facets-2.9.2 src/standard/facets/math/gcd.rb
facets-2.9.1 lib/standard/facets/math/gcd.rb
facets-2.9.0 lib/more/facets/math/gcd.rb
facets-2.9.0.pre.2 lib/more/facets/math/gcd.rb