Sha256: a8b7f8ef960af9c0bef778427bd83cb66f5ceaf4ff483f5a4a5cc2e12025a1dd

Contents?: true

Size: 433 Bytes

Versions: 3

Compression:

Stored size: 433 Bytes

Contents

# coding: utf-8
class Integer
  def aliquot_sequence(max_iterations=(self > 100 ? 10 : sqrt),
                       summatory_function=->(n){ n.aliquot_sum })
    sequence = [self]
    max_iterations.floor.times do |limit|
      sequence << summatory_function[sequence.last]
      break if sequence[0..-2].include?(sequence.last)
      return sequence << (1/0.0) if limit.consecutive?(max_iterations)
    end
    sequence
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
numb-0.152.0 lib/numb/aliquot_sequence.rb
numb-0.138.0 lib/numb/aliquot_sequence.rb
numb-0.125.0 lib/numb/aliquot_sequence.rb