lib/numb/factorial.rb in numb-0.170.0 vs lib/numb/factorial.rb in numb-0.181.0

- old
+ new

@@ -12,6 +12,18 @@ 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