Sha256: 5f9bdf0250a326f129587ea5ae78937f461643a0811e681ad2bf17153113dc0f

Contents?: true

Size: 355 Bytes

Versions: 5

Compression:

Stored size: 355 Bytes

Contents

# coding: utf-8
class Integer
  def semi_perfect?
    return false if deficient?
    return true if perfect?
    divisors = proper_positive_divisors
    1.upto(divisors.size-1) do |size|
      divisors.combination(size) do |comb|
        return true if comb.reduce(:+) == self
      end
    end
    false
  end
  alias :pseudo_perfect? :semi_perfect?
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
numb-0.3.4 lib/numb/semi_perfect.rb
numb-0.3.3 lib/numb/semi_perfect.rb
numb-0.3.2 lib/numb/semi_perfect.rb
numb-0.3.1 lib/numb/semi_perfect.rb
numb-0.3.0 lib/numb/semi_perfect.rb