0
我对'R'很陌生,正试图开始学习它。我编写了以下程序来生成给定数量的主要因素。但由于神秘的原因,它在一天结束时会产生一个无意义的名单。我无法找到发生的地方或原因。请你帮忙。计算'R'中的素数因子
library(gmp)
getPrimeFactors = function(n){
primeList=c()
if(isprime(n)){
primeList <- append(primeList, n)
return (primeList)
}
currentPrime <- 2
while(TRUE){
# Check if input is divisible by the current primeList
if(n %% currentPrime == 0){
cat(sprintf("the number %f is divisible by %f\n", n, currentPrime))
n = n%/%currentPrime
cat(sprintf("current prime :%f\n", currentPrime))
primeList = append(primeList,currentPrime)
currentPrime = 2
if(isprime(n)){
primeList <- append(primeList, n)
return (primeList)
}
}
else{
#cat(sprintf("the number %f is NOT divisible by %f\n", n, currentPrime))
#cat(sprintf("current prime before is: %f\n", currentPrime))
print(c("current prime before:", currentPrime))
currentPrime = nextprime(currentPrime)
#cat(sprintf("current prime after is: %f\n", currentPrime))
print(c("current prime after:", currentPrime))
}
}
}
你为什么不使用来自同一个包'factorize'? – nicola
您的预期产量是多少?你的目标是写你自己的这个功能,还是你只是想要得到所有的除数? – etienne
为输入18,我希望输出2,3,3。但我得到:2 1 0 0 0 1 0 0 0 1 0 0 0 3 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 3 0 0 0.我现在知道已经有一个分解函数,但我仍然想知道我做错了什么。 – Kevin