Ruby測試小代碼[計算50之內的素數]

算法思想

判斷某一個數,能不能被比他平方根小的素數整除。算法

首先看看代碼

$arr = []
$arr[0] = 2
def add_prime(n)
	3.step(n,2){|num| $arr <<num if is_prime?num }
end

def is_prime?(number)
	j=0
	while $arr[j]*$arr[j]<=number
		return false if number % $arr[j] == 0
		j += 1
	end
	return true
end
add_prime(50)
puts $arr.join(","),"\n"

分析一下

  • 關於變量:$xxx是建立全局變量
  • 3.step(n,2){}:就是從3開始,每次加2獲得的數,好比1.step(10, 2) { |i| print i," " } 結果就是 1 3 5 7 9
  • ruby if判斷的時候,比較另類, action if condition,因此return false if number % $arr[j] == 0 的意思是 若是對$arr[j]取餘爲零,則返回false
  • 輸出的時候,","起到鏈接符的做用,"aaa","bbb"其實就是aaabbb
  • 輸出能夠用puts或者print,puts就是比print多了自動回車而已
相關文章
相關標籤/搜索