Skip to content

End of Life Ruby 3.0 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →

instance method

Prime#prime_division

prime_division(value, generator = Prime::Generator23.new)

Returns the factorization of value.

For an arbitrary integer:

p_1**e_1 * p_2**e_2 * ... * p_n**e_n,

prime_division returns an array of pairs of integers:

[[p_1, e_1], [p_2, e_2], ..., [p_n, e_n]].

Each pair consists of a prime number – a prime factor – and a natural number – its exponent (multiplicity).

Parameters

value

An arbitrary integer.

generator

Optional. A pseudo-prime generator. generator.succ must return the next pseudo-prime number in ascending order. It must generate all prime numbers, but may also generate non-prime numbers, too.

Exceptions

ZeroDivisionError

when value is zero.

Example

Example
Prime.prime_division(45)  #=> [[3, 2], [5, 1]]
3**2 * 5                  #=> 45