ruby - Ruby - 帮助组合语法以查找素数并将非素数减少为大于 1 的最小除数
问题描述
我对此完全陌生,并试图自学 Ruby。有人给我一个问题,看看我能否拼凑出要做什么,并通过研究和坚定的决心证明解决问题的能力,所以请记住,我对 Ruby 知之甚少,我已经学习了一整天。
我需要首先确定一个整数是否为素数(据我所知,不使用所需的“素数”目录),然后,如果结果为真,我的输出需要为 1。如果为假,我的输出必须是大于一的最小除数。
把我在这里找到的东西和互联网上的其他各种网站拼凑在一起,我把我希望能起作用的东西拼凑在一起。它不是。
def isPrime(n)
( 2..Math.sqrt(n)).each { |i|
if n % i == 0 && i < n
else
n.reduce { |smallest, current| break if n <= 2 }
puts n
end
}
1
我不知道为什么它不起作用。我对 Ruby 的语法知之甚少,而且我有理由确定这就是我搞砸的地方。
找到素数确实有效;其余的(找到最小的除数)没有。而且我敢肯定,我用 1 替换 true 会严重破坏这一点。任何帮助或见解将不胜感激。我在编码方面的背景为零(除非你算上我妈妈在 80 年代在 COBOL 工作),所以无论如何都要像对一个傻瓜一样解释它,因为我是新人。
解决方案
推荐阅读
- python - 将列表传递给 Python 函数
- .net-core - 在 net core 2.0 类库中找不到 System.Net.Http
- maps - html2canvas 谷歌地图市场标签消失 - z-index 问题?
- google-bigquery - 在日期之间遇到问题
- sqlite - 如何更新新行或与现有行完全相同的行,并在其他情况下引发错误?
- go - 传入请求:带有自定义类型字段的上下文
- javascript - onclick 执行 php 函数而不重新加载页面
- azure - Azure Maps - 我可以获取道路的速度限制吗?
- r - 绘制自定义模式栏图标更改颜色和形状,并在 R 的新窗口中打开链接
- python - 如何根据每个条目的创建时间拆分大型 json 文件?