Learn R Programming

RcppAlgos (version 0.2.1)

numDivisorSieve: Generate Number of Divisors for all Integers up to \(n\)

Description

Rcpp sieve implementation that quickly generates the number of divisors for every integer up to \(n\). This is equivalent to performing the divisor function (often written as \(\sigma(n)\)) for every number up to \(n\).

Usage

numDivisorSieve(n = 100L)

Arguments

n

Positive integer or numeric value.

Value

Returns an integer vector

Details

Very simple sieve that quickly calculates the number of divisors for every integer up to \(n\). This function is very useful when you need to calculate the number of divisors for many numbers.

References

Divisor function

Examples

Run this code
# NOT RUN {
## Generate some random data
set.seed(8128)
mySamp <- sample(10^6, 5*10^5)

## Quickly generate number of coprime elements for many numbers
system.time(mySigmas <- numDivisorSieve(10^6))

## Now use result in algorithm
for (s in mySamp) {
    sSig <- mySigmas[s]
    ## Continue algorithm
}

# }

Run the code above in your browser using DataLab