Sha256: c03000a9e7b8a7b4100a5cf5202f53cd72aefce23178fae43a4f0758c2ba62aa

Contents?: true

Size: 335 Bytes

Versions: 20

Compression:

Stored size: 335 Bytes

Contents

class Integer
  def congruum?
    # Fibonacci proved that h|24
    # Fermat’s right triangle theorem shows h is not square
    return false unless divides?(24) and not square?
    h = self
    (1..Math.sqrt(h)).any? do |n|
      (n.succ..Math.sqrt(h)).any? do |m|
        h == (4 * m * n) * (m**2 - n**2)
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
numb-0.186.0 lib/numb/congruum.rb
numb-0.185.0 lib/numb/congruum.rb
numb-0.184.0 lib/numb/congruum.rb
numb-0.181.0 lib/numb/congruum.rb
numb-0.170.0 lib/numb/congruum.rb
numb-0.152.0 lib/numb/congruum.rb
numb-0.138.0 lib/numb/congruum.rb
numb-0.125.0 lib/numb/congruum.rb
numb-0.114.0 lib/numb/congruum.rb
numb-0.111.0 lib/numb/congruum.rb
numb-0.109.0 lib/numb/congruum.rb
numb-0.99.0 lib/numb/congruum.rb
numb-0.96.0 lib/numb/congruum.rb
numb-0.89.0 lib/numb/congruum.rb
numb-0.84.0 lib/numb/congruum.rb
numb-0.77.0 lib/numb/congruum.rb
numb-0.72.1 lib/numb/congruum.rb
numb-0.72.0 lib/numb/congruum.rb
numb-0.68.0 lib/numb/congruum.rb
numb-0.63.0 lib/numb/congruum.rb