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

Link to this function

aliquot_sum(n)

View Source (since 0.3.0)

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
Link to this function

amicable?(x, y)

View Source (since 0.3.4)

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
Link to this function

classify(n)

View Source (since 0.3.0)

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
Link to this function

factors_of(n)

View Source (since 0.1.0)

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]
Link to this function

sum_type?(n, sum_type)

View Source (since 0.3.0)

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
Link to this function

sums_in(range, sum_type)

View Source (since 0.3.0)

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]
Link to this function

sums_of_type(n, sum_type)

View Source (since 0.3.0)

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}]