Ruby中的素数测试

Cod*_*ver 0 ruby arrays

我有一个阵列a = [1,2,3,4,5].我想测试哪些数字是素数并想要产生输出{1=>false, 2=>true, 3=>true, 4=>false, 5=>true}.

任何一个班轮将不胜感激.

bsd*_*bsd 7

我发布此评论作为评论.

require 'prime'

a = (1..5).to_a
Hash[a.map{ |x| [x, x.prime?] }]
=> {1=>false, 2=>true, 3=>true, 4=>false, 5=>true}
Run Code Online (Sandbox Code Playgroud)


Aru*_*hit 5

以下内容适用于您,使用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}
Run Code Online (Sandbox Code Playgroud)

  • 你也可以这样做:`哈希[a.map {| x | [x,x.prime?]}]` (5认同)