Various useful number theoretic functions

divisor(n,k=1)
primes(n)
factorize(n)
mobius(n)
totient(n)
liouville(n)

Arguments

n,k

Integers

Details

Functions primes() and factorize() cut-and-pasted from Bill Venables's con.design package, version 0.0-3. Function primes(n) returns a vector of all primes not exceeding n; function factorize(n) returns an integer vector of nondecreasing primes whose product is n.

The others are multiplicative functions, defined in Hardy and Wright:

Function divisor(), also written \(\sigma_k(n)\), is the divisor function defined on p239. This gives the sum of the \(k^{\rm th}\) powers of all the divisors of n. Setting \(k=0\) corresponds to \(d(n)\), which gives the number of divisors of n.

Function mobius() is the Moebius function (p234), giving zero if n has a repeated prime factor, and \((-1)^q\) where \(n=p_1p_2\ldots p_q\) otherwise.

Function totient() is Euler's totient function (p52), giving the number of integers smaller than n and relatively prime to it.

Function liouville() gives the Liouville function.

References

G. H. Hardy and E. M. Wright, 1985. An introduction to the theory of numbers (fifth edition). Oxford University Press.

Note

The divisor function crops up in g2.fun() and g3.fun(). Note that this function is not called sigma() to avoid conflicts with Weierstrass's \(\sigma\) function (which ought to take priority in this context).

Author

Robin K. S. Hankin and Bill Venables (primes() and factorize())

Examples

mobius(1)
#> [1] 1
mobius(2)
#> [1] -1
divisor(140)
#> [1] 336
divisor(140,3)
#> [1] 3164112


plot(divisor(1:100,k=1),type="s",xlab="n",ylab="divisor(n,1)")


plot(cumsum(liouville(1:1000)),type="l",main="does the function ever exceed zero?")