2016-09-08 4 views
-1

a linkここではプログラムを実行しています。私は素数関数を呼び出していますが、以下のようなエラーが出ます。私はルビーの新しい、助けてください。Hackerrankでプライム関数を使用できません

私が実行しているコード。

prime_pal_array = -> (num) do 
    1.upto(Float::INFINITY).lazy.select{|x| prime?(x) and palindromic?(x)}.first(num) 
end 

puts prime_pal_array.(5) 

以下のようなエラーが表示されます。

in `block (2 levels) in 
': undefined method `prime?' for main:Object (NoMethodError) 

答えて

1

Core APIには、このような方法prime?はありません。新しいメソッドprime?を自分で定義するか、スクリプトの先頭にrequire 'prime'を追加してStandard Library'sの実装を使用する必要があります。

しかし、CoreライブラリやStandardライブラリにも'palindromic?'メソッドがないため、コードを修正することはできません。だからどちらかを作成するか、RubyGemsに関連する宝石をダウンロードしてインストールしてください。

上記の2つの手順は、コードの修正を開始するのに役立ちます。

+0

しかし、 'Prime'ライブラリでさえ、グローバルな'プライム? '関数を定義していません。 – Stefan

+0

@Stefanあなたは何を意味するのかわかりませんか?例えば'5.プライム? # '> prime? '](http://ruby-doc.org/stdlib-2.3.1/libdoc/prime/rdoc/Integer.html#method- i-prime-3F) –

+0

私は、OPのコードで使用されているような「素数?(5)」がないことを意味します。 – Stefan

関連する問題