问题是: 有一个包含功能的包,可以检查数字是否为素数。 install.packages(“schoolmath”)library(schoolmath)is.prim(3) 创建一个接受两个整数的函数(将默认值设置为1)。该函数应计算两个值之间的素数数。 我的代码是:
install.packages("schoolmath")
library(schoolmath)
is.prim(3)
prime <- function(x)
{
p <- 0
p1 <- ifelse(is.prim(x) == "TRUE", p + 1, p)
return(sum(p1 == 1))
}
prime(seq(1,10,1))
当我运行该函数时,它也将1作为素数,这不是真的。如何有效地排除功能?
答案 0 :(得分:0)
您可以稍微简化一下您的功能,因为is.prim
适用于向量并查看sum
函数的文档:
逻辑真值被视为一,假值为零。
这是一个计算向量
中素数的函数count.primes <- function(x) {
sum(x > 1 & is.prim(x))
}
示例:
count.primes(1:10)
# [1] 4
count.primes(1:20)
# [1] 8