-2

我试图在 Ruby 中找到数字 x 的最大素数,而不使用require 'prime'.

这是代码

x=13195; n=2; max=n;

for n in (2...x)
  if (x%n==0)
    prime=true
    for y in (1...n)
      if n%y==0
        prime=false
      end
    end
    if prime
      max=n
    end
  end
end

puts max

我知道代码是循环扩展的。而且它不是很“像Ruby”。我只需要了解我的代码中的逻辑错误。

4

2 回答 2

1
require 'rubygems'
require 'prime'

x = 13195

#Solution suggested by steenslag
max = x.prime_divison.last.first

puts max  # => 29
于 2013-09-11T21:01:17.530 回答
1

x 是一个数组

x=13195, n=2, max=n # => x == [13195, 2, 2] 

你需要

x=13195; n=2; max=n;

所以,很明显这(2...[13195, 2, 2])是无效的Range

于 2013-09-11T21:08:18.217 回答