Combinatorics Functions (20)
Number theory, combinatorial functions, prime numbers, sequences
bellNumbers
The Bell Numbers count the number of partitions of a set. A partition is a pairwise disjoint subset of S whose union is S. `bellNumbers` only takes integer arguments. The following condition must be enforced: n >= 0.
Type Signatures
number | BigNumber
Parameters
Name Type Description
n Number | BigNumber Total number of objects in the set
Returns
Number | BigNumber — B(n)
Examples
bellNumbers(3) bellNumbers(8)
carmichaelLambda
Syntax
carmichaelLambda(n)
Parameters
Name Type Description
n number Positive integer
Returns
number — lambda(n)
Examples
carmichaelLambda(1) carmichaelLambda(8) carmichaelLambda(12) carmichaelLambda(15)
catalan
The Catalan Numbers enumerate combinatorial structures of many different types. catalan only takes integer arguments. The following condition must be enforced: n >= 0.
Type Signatures
number | BigNumber
Parameters
Name Type Description
n Number | BigNumber nth Catalan number
Returns
Number | BigNumber — Cn(n)
Examples
catalan(3) catalan(8)
chineseRemainder
Solve a system of congruences using the Chinese Remainder Theorem.
Syntax
chineseRemainder(remainders | moduli)
Type Signatures
Array, Array
Parameters
Name Type Description
remainders number[] Array of remainders [r0, r1, ..., rk]
moduli number[] Array of pairwise coprime moduli [m0, m1, ..., mk]
Returns
number — Unique solution x in [0, M)
Examples
chineseRemainder([2 3 2
composition
The composition counts of n into k parts. composition only takes integer arguments. The following condition must be enforced: k <= n.
Syntax
composition(n | k)
Type Signatures
number | BigNumber, number | BigNumber
Parameters
Name Type Description
n Number | BigNumber Total number of objects in the set
k Number | BigNumber Number of objects in the subset
Returns
Number | BigNumber — Returns the composition counts of n into k parts.
divisorSigma
Compute the divisor function sigma_k(n): the sum of the k-th powers of all positive divisors of n. k=0 gives the number of divisors; k=1 gives the sum of divisors.
Syntax
divisorSigma(k | n)
Type Signatures
number, number
Parameters
Name Type Description
k number Non-negative integer exponent
n number Positive integer
Returns
number — sigma_k(n)
Examples
divisorSigma(0 12) divisorSigma(1 12) divisorSigma(1
divisors
Return a sorted array of all positive divisors of a positive integer n.
Parameters
Name Type Description
n number Positive integer
Returns
number[] — Sorted array of all positive divisors of n
Examples
divisors(1) divisors(12) divisors(28)
eulerPhi
Parameters
Name Type Description
n number Positive integer
Examples
eulerPhi(1) eulerPhi(6) eulerPhi(12) eulerPhi(7)
fibonacci
Compute the nth Fibonacci number using the fast doubling algorithm. F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2). For n > 70 use BigInt input to avoid overflow.
Parameters
Name Type Description
n number | bigint Non-negative integer index
Returns
number | bigint — The nth Fibonacci number F(n)
Examples
fibonacci(0) fibonacci(1) fibonacci(10) fibonacci(20)
harmonicNumber
Compute the n-th harmonic number H_n = 1 + 1/2 + 1/3 + ... + 1/n. Uses direct summation for small n and asymptotic expansion for large n. n must be a positive integer.
Parameters
Name Type Description
n number A positive integer
Returns
number — The n-th harmonic number H_n
Examples
harmonicNumber(1) harmonicNumber(5) harmonicNumber(10) harmonicNumber(100)
integerDigits
Return the digits of a non-negative integer in a given base (default 10), most significant digit first.
Syntax
integerDigits(n) | integerDigits(n | base)
Type Signatures
number, number
Parameters
Name Type Description
n number Non-negative integer
base number Base for the digit representation (default: 10)
Returns
number[] — Array of digits, most significant first
Examples
integerDigits(123) integerDigits(255 16) integerDigits(10 2)
jacobiSymbol
Compute the Jacobi symbol (a/n), a generalization of the Legendre symbol. Returns 0, 1, or -1. n must be an odd positive integer.
Syntax
jacobiSymbol(a | n)
Type Signatures
number, number
Parameters
Name Type Description
a number Integer
n number Odd positive integer >= 1
Returns
number — Jacobi symbol (a/n): 0, 1, or -1
Examples
jacobiSymbol(1 1) jacobiSymbol(2 7) jacobiSymbol(3
lucasL
Compute the nth Lucas number.
Parameters
Name Type Description
n number Non-negative integer index
Returns
number — The nth Lucas number L(n)
Examples
lucasL(0) lucasL(1) lucasL(5) lucasL(10)
moebiusMu
Compute the Mobius function mu(n).
Parameters
Name Type Description
n number Positive integer >= 1
Returns
number — mu(n): 0, 1, or -1
Examples
moebiusMu(1) moebiusMu(2) moebiusMu(6) moebiusMu(4) moebiusMu(30)
nextPrime
Return the smallest prime number strictly greater than n.
Parameters
Name Type Description
n number Non-negative number
Returns
number — Smallest prime p such that p > n
Examples
nextPrime(1) nextPrime(10) nextPrime(100) nextPrime(1000)
partitions
Count the number of integer partitions of n (P(n)).
Parameters
Name Type Description
n number Non-negative integer
Returns
number — Number of integer partitions P(n)
Examples
partitions(0) partitions(1) partitions(4) partitions(10)
prime
Return the nth prime number (1-indexed). prime(1) = 2, prime(2) = 3, prime(3) = 5, etc.
Parameters
Name Type Description
n number Positive integer (1-indexed)
Returns
number — The nth prime number
Examples
prime(1) prime(5) prime(25) prime(100)
primeFactors
Compute the prime factorization of a positive integer n, returning an array of prime factors in ascending order with multiplicity.
Parameters
Name Type Description
n number Positive integer >= 1
Returns
number[] — Array of prime factors with multiplicity, sorted ascending
Examples
primeFactors(1) primeFactors(12) primeFactors(100) primeFactors(997)
primePi
Compute the prime counting function pi(n): the number of primes less than or equal to n.
Parameters
Name Type Description
n number Non-negative integer
Returns
number — Number of primes <= n
Examples
primePi(10) primePi(100) primePi(1000)
stirlingS2
The Stirling numbers of the second kind, counts the number of ways to partition a set of n labelled objects into k nonempty unlabelled subsets. `stirlingS2` only takes integer arguments. The following condition must be enforced: k <= n. If n = k or k = 1, then s(n,k) = 1.
Type Signatures
number | BigNumber, number | BigNumber
Parameters
Name Type Description
n Number | BigNumber Total number of objects in the set
k Number | BigNumber Number of objects in the subset
Returns
Number | BigNumber — S(n,k)