View Source Multitool.Numbers.Factors (multitool v0.3.4)
Provides operations for working with the factors of numbers
A factor of a number x
is any number which divides x
without a remainder.
If x
was 10
, the factors of x
would be [1, 2, 5, 10]
Link to this section Summary
Functions
Given a number n
, calculates the sum of all proper divisors of n
, other than n
itself
Given two integers, determines if the proper divisors of each sum to equal the other number
Given a number n
, classifies n
as either pefect, abundant, or deficient
Given a number n
, retrieve a list of all factors for that number
Given an integer n
and sum_type
, returns true if n
can be represented as the sum of two numbers of the given type
Given a range range
, returns a list of integers that can be represented as the sum of two abundant numbers
Given an integer n
and sum_type
, returns a list of tuples containg two numbers of the given type which sum to equal n
Link to this section Functions
Given a number n
, calculates the sum of all proper divisors of n
, other than n
itself
parameters
Parameters
n: A non-negative integer
examples
Examples
iex> aliquot_sum(3)
1
iex> aliquot_sum(12)
16
iex> aliquot_sum(100)
117
Given two integers, determines if the proper divisors of each sum to equal the other number
Always returns true if false is either number is less than 220 or equal to each other
parameters
Parameters
x: The integer to check for amicability with y
y: The integer to check for amicability with x
examples
Examples
iex> amicable?(192, 315)
false
iex> amicable?(220, 284)
true
Given a number n
, classifies n
as either pefect, abundant, or deficient
If the aliquot sum of n
is equal to n
, n
is perfect. If the sum exceeds
n
, it is abundant. Otherwise, it is deficient
parameters
Parameters
n: A non-negative integer
examples
Examples
iex> classify(3)
:deficient
iex> classify(12)
:abundant
iex> classify(28)
:perfect
Given a number n
, retrieve a list of all factors for that number
If n
is less than one, return an empty list. The resulting
list is not sorted.
parameters
Parameters
n: The number to retrieve factors of
iex> factors_of(3)
[1, 3]
iex> factors_of(0)
[]
iex> factors_of(100)
[1, 100, 2, 50, 4, 25, 5, 20, 10]
Given an integer n
and sum_type
, returns true if n
can be represented as the sum of two numbers of the given type
Always returns true if n is greater than 28123 and the type is abundant. False if less than one. All other values are computed
parameters
Parameters
n: An integer
sum_type: An atom of either :abundant, :deficient, or :perfect
examples
Examples
iex> sum_type?(24, :abundant)
true
iex> sum_type?(12, :perfect)
true
iex> sum_type?(14, :deficient)
true
Given a range range
, returns a list of integers that can be represented as the sum of two abundant numbers
If no numbers in the range are the sum of two abundant numbers, an empty list is returned
parameters
Parameters
range: An integer range
examples
Examples
iex> sums_in(1..25, :abundant)
[24]
iex> sums_in(1..5, :deficient)
[2, 3, 4, 5]
iex> sums_in(1..1000, :perfect)
[12, 34, 56, 502, 524, 992]
Given an integer n
and sum_type
, returns a list of tuples containg two numbers of the given type which sum to equal n
If no two numbers of the given type sum to n
, an empty list is returned. An empty list
is returned for integers below one
parameters
Parameters
n: An integer
sum_type: An atom of either :abundant, :deficient, or :perfect
examples
Examples
iex> sums_of_type(100, :abundant)
[{12, 88}, {20, 80}, {30, 70}, {40, 60}]
iex> sums_of_type(5, :deficient)
[{1, 4}, {2, 3}]
iex> sums_of_type(12, :perfect)
[{6, 6}]