Sha256: a4db7059aed5bb6e163797c4b92bf461175552a5580347560390018af81bcab7

Contents?: true

Size: 298 Bytes

Versions: 16

Compression:

Stored size: 298 Bytes

Contents

# coding: utf-8
class Integer
  def perfect?
    return false if self < 6 or self.odd? or self.to_s !~ /(6|8)$/
    return false if self != 6 and digital_root != 1  
    divisors = proper_positive_divisors
    return false unless (divisors.size + 1).even?
    divisors.reduce(:+) == self
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
numb-0.21.0 lib/numb/perfect.rb
numb-0.20.0 lib/numb/perfect.rb
numb-0.10.0 lib/numb/perfect.rb
numb-0.9.0 lib/numb/perfect.rb
numb-0.8.0 lib/numb/perfect.rb
numb-0.7.0 lib/numb/perfect.rb
numb-0.6.1 lib/numb/perfect.rb
numb-0.6.0 lib/numb/perfect.rb
numb-0.5.0 lib/numb/perfect.rb
numb-0.4.0 lib/numb/perfect.rb
numb-0.3.5 lib/numb/perfect.rb
numb-0.3.4 lib/numb/perfect.rb
numb-0.3.3 lib/numb/perfect.rb
numb-0.3.2 lib/numb/perfect.rb
numb-0.3.1 lib/numb/perfect.rb
numb-0.3.0 lib/numb/perfect.rb