2012-04-13 33 views
0

ruby​​プログラムが必要ですが、aとbの間にPrime の数を出力する2つの引数(a、b)があります。ここに私のプログラムです。それは間違っている。私は知らない どこに問題がありますか。誰でも助けてくれますか?引数(素数)を持つ関数

a,b=ARGV 
def prime (a,b) 
for i in 2..b 
    f=true 
    for p in 2...i 
     if i%p==0 
     f =!f 
     break 
     end 
    end 
print i, "--" if f 
end 
end 
sushu=prime(a,b) 
p "the prime zweischen #{a} and #{b} is #{sushu}." 

答えて

1

他の回答が既にあなたのコード(代わりに整数の文字列を使用して、引数aを使用していないと間違っているものを指摘してみます。しかし、あなたはRuby 1.9の上にある場合、ありますあなたが望むものを実現するもっと簡単な方法:

require 'prime' 
def prime(a, b) 
    (a..b).select(&:prime?) 
end 

prime(1,20) 
#=> [2, 3, 5, 7, 11, 13, 17, 19] 
0

パラメータaを考慮しません。おそらく..bの代わりにa..bからiを繰り返し変更すると、問題が解決されます。

a,b=ARGV 
def prime (a,b) 
for i in a..b 
    f=true 
    for p in 2...i 
     if i%p==0 
     f =!f 
     break 
     end 
    end 
print i, "--" if f 
end 
end 
sushu=prime(a,b) 
p "the prime zweischen #{a} and #{b} is #{sushu}." 
0

sushu=prime(a.to_i,b.to_i) 
関連する問題