Sha256: a4b0dc375f86040b4382f25338f63032623c80a3b7ea8f04806e8e01fff28877

Contents?: true

Size: 569 Bytes

Versions: 15

Compression:

Stored size: 569 Bytes

Contents

# coding: utf-8
class Integer
   def semiperfect?
     return false if deficient?
     return true if perfect?
     possibles = { 0 => true}
     proper_sod = (sod = σ || 0) - self
     proper_divisors.reverse.each do |divisor|
       possibles.keys.each do |possible|
         possibles.delete(possible) if possible + sod < self 
         x = possible + divisor
         return true if x == self or x == proper_sod 
         possibles[x] = true if x < self        
       end
       sod -= divisor
     end
     false
   end
  alias :pseudoperfect? :semiperfect?
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
numb-0.152.0 lib/numb/semiperfect.rb
numb-0.138.0 lib/numb/semiperfect.rb
numb-0.125.0 lib/numb/semiperfect.rb
numb-0.114.0 lib/numb/semiperfect.rb
numb-0.111.0 lib/numb/semiperfect.rb
numb-0.109.0 lib/numb/semiperfect.rb
numb-0.99.0 lib/numb/semiperfect.rb
numb-0.96.0 lib/numb/semiperfect.rb
numb-0.89.0 lib/numb/semiperfect.rb
numb-0.84.0 lib/numb/semiperfect.rb
numb-0.77.0 lib/numb/semiperfect.rb
numb-0.72.1 lib/numb/semiperfect.rb
numb-0.72.0 lib/numb/semiperfect.rb
numb-0.68.0 lib/numb/semiperfect.rb
numb-0.63.0 lib/numb/semiperfect.rb