关于 R 代码与四舍五入素数有关的问题
Question regarding R code to do with rounding prime numbers
我需要一个函数,如果输入的数字是素数,它必须将它四舍五入到下一个素数,如果不是,则将它四舍五入到前一个素数。
我有这个代码来识别它是否是质数:
prime <- function(x) {
if (x == 2) {
print(3)
} else if (any(x %% 2:(x-1) == 0)) {
FALSE
} else {
TRUE
}
}
我想在 true 和 false 中添加一个 while 循环,如果函数为假,它必须减一直到它为真,如果它为真,它必须加一直到它再次为真但我是不知道该怎么做。
使用您的素数检查器,
prime <- function(x) {
if (x == 2) {
print(3)
} else if (any(x %% 2:(x-1) == 0)) {
FALSE
} else {
TRUE
}
}
我们构建new
函数,我们首先检查我们的数字是否是质数,如果是,加1直到我们到达下一个质数。如果它不是质数,我们减 1 直到它是。
new <- function(x){
if (isTRUE(prime(x))){
x = x+1
while(prime(x) == FALSE){
x = x+1
}
return(x)
} else {
while(prime(x) == FALSE){
x = x-1
}
return(x)
}
}
我们得到
> new(7)
[1] 11
> new(10)
[1] 7
我需要一个函数,如果输入的数字是素数,它必须将它四舍五入到下一个素数,如果不是,则将它四舍五入到前一个素数。
我有这个代码来识别它是否是质数:
prime <- function(x) {
if (x == 2) {
print(3)
} else if (any(x %% 2:(x-1) == 0)) {
FALSE
} else {
TRUE
}
}
我想在 true 和 false 中添加一个 while 循环,如果函数为假,它必须减一直到它为真,如果它为真,它必须加一直到它再次为真但我是不知道该怎么做。
使用您的素数检查器,
prime <- function(x) {
if (x == 2) {
print(3)
} else if (any(x %% 2:(x-1) == 0)) {
FALSE
} else {
TRUE
}
}
我们构建new
函数,我们首先检查我们的数字是否是质数,如果是,加1直到我们到达下一个质数。如果它不是质数,我们减 1 直到它是。
new <- function(x){
if (isTRUE(prime(x))){
x = x+1
while(prime(x) == FALSE){
x = x+1
}
return(x)
} else {
while(prime(x) == FALSE){
x = x-1
}
return(x)
}
}
我们得到
> new(7)
[1] 11
> new(10)
[1] 7