Sha256: 604b20265211bdbc8758eaa9d2b95f9bf94a801ee431c3319e0863901f3407f0
Contents?: true
Size: 660 Bytes
Versions: 4
Compression:
Stored size: 660 Bytes
Contents
class Integer def factorial return 1 if zero? (1..self).reduce(:*) end def factorial? divisors = self.divisors.sort divisors.each_with_index do |d, i| if divisors[i.succ] == d.succ return true if d.factorial == self else return d.factorial == self end end end def factorial_of? return false unless factorial? return 1 if self == 1 pfacts = primaries divisors.sort.take_while.with_index{|d,i| d == i.succ}.reverse_each do |d| pfacts.all? do |b, e| (1..Math.log(d,b)).map{|k| Rational(d, b**k).floor}.reduce(:+) == e end and return d end nil end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
numb-0.186.0 | lib/numb/factorial.rb |
numb-0.185.0 | lib/numb/factorial.rb |
numb-0.184.0 | lib/numb/factorial.rb |
numb-0.181.0 | lib/numb/factorial.rb |