2016-04-14 42 views
1

我正在編寫此程序以查找1到100之間的素數,而不使用req素數。如何讓每個數組元素成爲Ruby中特定值的除數?

計劃找到1和100

可以做出哪些數組中的每個元素劃分值作爲除數之間

divisors = [2,3,5,7,9,11,13,15] 
arr = divisors.to_a 
(1..100).each do |value| 
    if ((value % (arr.each do |n|) != 0)) 
    puts "#{value}" 
    end 
    end 
素數?我在這裏錯過了什麼?

+0

15?嗯....... –

回答

2

你的代碼中有許多小故障,主要是:它有一個不正確的語法,不會被Ruby解析器接受。

下面的代碼會工作,但你應該考慮閱讀有點ruby語法的教程。

divisors = [2,3,5,7,9,11,13] 
(1..100).each do |value| 
    unless divisors.any? { |d| value % d == 0 } 
    puts "#{value}" 
    end 
end 

該數字是質數,如果並且只有它沒有分隔符。使用unless連同Enumerable#any?我們檢查完全相反的否定:在dividers中是否沒有這樣的d,以便value % d爲零,我們就完成了。

+0

你能否請解釋這種說法 - 除非divisors.any? {| d |值%d =​​= 0}對不起,我對此是新的.. – SoftwareTestingEnthusiast

+1

請參閱更新。 – mudasobwa

+0

太棒了,非常感謝。 – SoftwareTestingEnthusiast

相關問題