RosettaCodeData/Task/Left-factorials/R/left-factorials.r
2020-02-17 23:21:07 -08:00

31 lines
562 B
R

library(gmp)
left_factorial <- function(n) {
if (n == 0) return(0)
result <- as.bigz(0)
adder <- as.bigz(1)
for (k in 1:n) {
result <- result + adder
adder <- adder * k
}
result
}
digit_count <- function(n) {
nchar(as.character(n))
}
for (n in 0:10) {
cat("!",n," = ",sep = "")
cat(as.character(left_factorial(n)))
cat("\n")
}
for (n in seq(20,110,10)) {
cat("!",n," = ",sep = "")
cat(as.character(left_factorial(n)))
cat("\n")
}
for (n in seq(1000,10000,1000)) {
cat("!",n," has ",digit_count(left_factorial(n))," digits\n", sep = "")
}