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