Sha256: f99f5339639d45d7d7dc8b5209c9e663a54af2623ac2a6b59381c1b715cecec2

Contents?: true

Size: 438 Bytes

Versions: 6

Compression:

Stored size: 438 Bytes

Contents

# coding: utf-8
class Integer
  def aliquot_sequence(max_iterations=(self > 100 ? 10 : Math.sqrt(self)),
                       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.succ == max_iterations
    end
    sequence
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
numb-0.111.0 lib/numb/aliquot_sequence.rb
numb-0.109.0 lib/numb/aliquot_sequence.rb
numb-0.99.0 lib/numb/aliquot_sequence.rb
numb-0.96.0 lib/numb/aliquot_sequence.rb
numb-0.89.0 lib/numb/aliquot_sequence.rb
numb-0.84.0 lib/numb/aliquot_sequence.rb