RosettaCodeData/Task/Prime-decomposition/R/prime-decomposition-2.r
2023-07-01 13:44:08 -04:00

35 lines
597 B
R

primes <- as.integer(c())
max_prime_checker <- function(n){
divisor <<- NULL
primes <- primes[primes <= n]
for(i in 1:length(primes)){
if((n/primes[i]) %% 1 == 0){
divisor[i]<<-1
} else {
divisor[i]<<-0
}
}
num_find <<- primes*as.integer(divisor)
return(max(num_find))
}
#recursive prime finder
prime_factors <- function(n){
factors <- NULL
large <- max_prime_checker(n)
n1 <- n/large
if(max_prime_checker(n1) == n1){
factors <- c(large,n1)
return(factors)
} else {
factors <- c(large, prime_factors(n1))
return(factors)
}
}