You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取3至100之间质数的R代码无输出,请求排查错误

代码错误分析与修正
  • 核心错误:内层循环的(2:i-1)写法有问题。R里冒号:的优先级比减法高,2:i-1会被解析成(2:i) - 1。比如i=3时,2:3得到c(2,3),减1后变成c(1,2),k会取到1,任何数对1取余都是0,直接把prime设为FALSE,所以所有数都被判定为非质数,自然没输出。

  • 修正后的代码:把内层循环范围改成2:(i-1),用括号明确优先级,保证生成从2到i-1的序列:

for (i in 3:100) {
  prime <- TRUE
  for (k in 2:(i-1)) {
    if (i %% k == 0) {
      prime = FALSE
      break
    }
  }
  if (prime == TRUE) {
    print(i)
  }
}
  • 补充说明:你给出的期望质数里有9,但9不是质数(3×3=9),修正后的代码会正确排除这类数,输出3到100之间的所有真实质数。

内容的提问来源于stack exchange,提问作者diasyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:02:18