首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于R码与舍入素数有关的问题

关于R码与舍入素数有关的问题
EN

Stack Overflow用户
提问于 2019-03-27 19:21:43
回答 1查看 40关注 0票数 1

我需要有一个函数,如果输入的数字是质数,它必须向上舍入到下一个质数,如果不是向下舍入到前一个质数。

我有这个代码来识别它是否是质数:

代码语言:javascript
复制
prime <- function(x) {
   if (x == 2) {
      print(3)
   } else if (any(x %% 2:(x-1) == 0)) {
      FALSE
     } else { 
      TRUE
   }
}

我想向true和false添加一个while循环,如果函数为false,则必须减1,直到为true;如果为true,则必须添加1,直到再次为true,但我不确定如何执行此操作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 19:33:18

用你的素数检验器,

代码语言:javascript
复制
prime <- function(x) {
  if (x == 2) {
    print(3)
  } else if (any(x %% 2:(x-1) == 0)) {
    FALSE
  } else { 
    TRUE
  }
}

我们构建new函数,我们首先检查我们的数字是否是质数,如果是,加1,直到我们到达下一个质数。如果它不是素数,我们减1直到它是素数。

代码语言:javascript
复制
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)
  }
}

我们会得到

代码语言:javascript
复制
> new(7)
[1] 11
> new(10)
[1] 7
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55375987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档