-1

私は配列を持っていa = [1,2,3,4,5]ます。どの数値が素数であるかをテストし、出力を生成したいと考えています{1=>false, 2=>true, 3=>true, 4=>false, 5=>true}

どんなライナーでも大歓迎です。

4

3 に答える 3

4

以下を使用すると、以下が機能しますPrime#prime?

require 'prime'

a = [1,2,3,4,5]
Hash[a.zip(a.map(&Prime.method(:prime?)))]
# => {1=>false, 2=>true, 3=>true, 4=>false, 5=>true}
于 2013-08-15T15:12:46.700 に答える
0

別の解決策:

a = [1,2,3,4,5]
results = {}

a.each {|i| results[i] = (1..i).map{|x| i/x.to_f % 1 == 0}.count(true) == 2}
puts results.inspect #=> {1 => false, 2 => true, 3 => true, 4 => false, 5 => true}
于 2013-08-15T15:33:13.390 に答える