我是 R 的初学者,正在尝试以下问题:
在 R 中创建一个函数,该函数将自然数 N 作为其输入,并将 1 到 N 之间的所有完美数的列表作为输出返回。
这里有3个步骤: 1.检查因子列表 2.检查是否是完美数 3.检查从1到10000
factorlist<-function(n){
if(n<2){return("Invalid Input")}
if(n%%1!=0){return("Invalid Input")}
vec<-0
for(i in 1:(n-1)){
if(n%%i==0){
vec[length(vec)]<-i
vec<-c(vec,0)
}
}
vec<-vec[-length(vec)]
return(vec)
}
perfectcheck<-function(n){
if(n-sum(factorlist(n)) ==0) {return("Perfect Number")}
else{return("Not Perfect Number")}
}
perfectcheckN<-function(N){
for(i in 1:N){
if(perfectcheck(i)=="Perfect Number"){
vec[length(vec)]<-i
vec<-c(vec)
}
}
vec<-vec[-length(vec)]
return(vec)
}
我的第三步出现以下错误
Error in sum(factorlist(n)) : invalid 'type' (character) of argument
我花了几个小时仍然无法弄清楚我的错误,请帮忙。谢谢!