r - 检查 R 中的素数,为什么使用 'break' 的这个选项不起作用

标签 r primes

开始熟悉 R。不明白为什么这个简单的 block 不起作用

特别想用'break'来做

prime.check <- function(num) {
  for (del in 2:(num-1)) {
    if (num %% del == 0) {
      break
    }
    print(paste(num, 'is not prime'))
  }
}

最佳答案

您的函数将在循环中每次都打印,这并不是真正需要的:您应该完成循环,然后确定要打印的内容。我建议假设它是一个素数,然后如果你break,然后知道它不是一个素数。

prime.check <- function(num) {
  isprime <- TRUE
  for (del in 2:(num-1)) {
    if (num %% del == 0) {
      isprime <- FALSE
      break
    }
  }
  isnot <- if (isprime) "is" else "is not"
  print(paste(num, isnot, "prime"))
  invisible(isprime)
}

prime.check(7)
# [1] "7 is prime"
prime.check(6)
# [1] "6 is not prime"

仅供引用,invisible(isprime) 允许您在其他地方使用此函数,例如 if (prime.check(8)) { do_something(); },而单独使用 print 则无法做到这一点。完全附属于您的原始请求。

关于r - 检查 R 中的素数,为什么使用 'break' 的这个选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74247921/

相关文章:

r - 预测 holt() 时出错

Python每次都从文件读取还是将值存储在列表中?

prolog - Prolog 中的不同素数分区

haskell - 这个Prime测试功能有什么问题吗?

algorithm - 是否有一个简单的算法可以确定 X 是否为素数?

r - 在一个 .R 文件中定义所有函数,从另一个 .R 文件调用它们。如果可以的话怎么办?

r - 子集 data.frame 联合多个间隔

css - R : code and out put 中的 revealjs_presentation

java - 如何为未知数量的数字显示方表

从 R 中的图中移除 N 个随机节点