зеркало из https://github.com/github/ruby.git
25 строки
399 B
Ruby
25 строки
399 B
Ruby
|
# from http://www.bagley.org/~doug/shootout/bench/sieve/sieve.ruby
|
||
|
num = 500
|
||
|
count = i = j = 0
|
||
|
flags0 = Array.new(8192,1)
|
||
|
k = 0
|
||
|
while k < num
|
||
|
k += 1
|
||
|
count = 0
|
||
|
flags = flags0.dup
|
||
|
i = 2
|
||
|
while i<8192
|
||
|
i += 1
|
||
|
if flags[i]
|
||
|
# remove all multiples of prime: i
|
||
|
j = i*i
|
||
|
while j < 8192
|
||
|
j += i
|
||
|
flags[j] = nil
|
||
|
end
|
||
|
count += 1
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
count
|