需要查找给定n的所有k-平滑数字。 我试过如下:查找R中给定n的k-平滑数字
library(gmp)
S <- c(1:30)
test <- function(range, k){
if(!isprime(k)==2){
print("k should be a prime number")
}
else{
for(i in range[1]:range[length(range)]){
pf <- as.integer(factorize(i))
if(max(pf) <= k){
print(range[i])
}
}
}
}
在控制台:测试(S,11)
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 14
[1] 15
[1] 16
[1] 18
[1] 20
[1] 21
[1] 22
[1] 24
[1] 25
[1] 27
[1] 28
[1] 30
*Warning message:
In max(pf) : no non-missing arguments to max; returning -Inf*
我想摆脱的警告。请帮忙! factorize()函数返回bigz是否存在问题?将其改为as.integer(factorize(i))?无法理解的原因警告