Sha256: 433e273ff393f48f84767f205efdb0b7d0702fa701fbb11286c61ab3a219bd3a

Contents?: true

Size: 321 Bytes

Versions: 2

Compression:

Stored size: 321 Bytes

Contents

class Integer
  def e_divisors
    return [1] if self == 1
    pfacts = primaries
    comb = pfacts.map{|p,a| (1..a).select{|b| a.divides?(b)}.map{|b| p**b}}
    comb.flatten.permutation(pfacts.size).select do |perm|
      perm.each_with_index.all?{|x,i| comb[i].include? x}
    end.map{|perm| perm.reduce(:*)}
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
numb-0.152.0 lib/numb/e_divisors.rb
numb-0.138.0 lib/numb/e_divisors.rb