我有一个代码
Eratosthenes <- function(n) {
if (n >= 2) {
sieve <- seq(2,n)
primes <- c()
for (i in seq(2,n)) {
if (any(sieve == i)) {
primes <- c(primes, i)
sieve <- c(sieve[(sieve %% i) ! = 0], i)
}
}
return(primes)
} else {
stop("Input value of n should be at least 2.")
}
}
错误Error: unexpected '}' in "}"
。但是,}
的一切似乎都很完美,但我没有错。谁能告诉我我的错误在哪里?
答案 0 :(得分:1)
我不知道R和我不能判断你的代码,但你的内部IF语句中是否缺少括号?
像这样:for (i in seq(2,n)) {
if (any(sieve == i)) {
primes <- c(primes, i)
sieve <- c(sieve[(sieve %% i) != 0], i)
}
}
答案 1 :(得分:1)
问题似乎在这里:sieve <- c(sieve[(sieve %% i) ! = 0], i)
。我假设你想要&#34;不等于&#34;,所以应该是sieve <- c(sieve[(sieve %% i) != 0], i)
。
以下是适用于我的格式化代码:
Eratosthenes <- function(n) {
if (n >= 2) {
sieve <- seq(2,n)
primes <- c()
for (i in seq(2,n)) {
if (any(sieve == i)) {
primes <- c(primes, i)
sieve <- c(sieve[(sieve %% i) != 0], i)
}
}
return(primes)
} else {
stop("Input value of n should be at least 2.")
}
}