【发布时间】:2017-03-01 02:15:13
【问题描述】:
我正在尝试输入任何数字并检查素数。我试图避免类和定义。我试图只使用循环。我的代码如下所示。
puts "What number would you like to find the largest prime factor?: "
lastnum = gets.to_i
puts "Number to find the largest prime factor is #{lastnum}"
n = 2
while (n <= lastnum)
if n % 2 == 0
puts "#{n} is not a prime"
elsif n % Math.sqrt(n) == 0
puts "#{n} is not a prime, sqrt rooted"
else
puts "#{n} is a prime"
end
n += 1
end
如果我输入100,我会在我的素数列表中得到诸如99 之类的数字。我可以在代码中添加或删除一些东西吗?如果有一种有效的方法并且我应该摆脱我正在做的事情,我也会考虑这种帮助。
【问题讨论】:
-
您的代码远未检查素数。它只检查一个数字是否为偶数或是否可被其平方根整除。
-
你的句子
"What number ... the largest prime factor?"和"Number to ... the largest prime factor is ..."不合语法。他们应该是"... the largest prime factor of ..."。