我刚刚学习了Eratosthenes筛网的概念。我发现以下Ruby代码。基于该代码,我绘制了流程图并编写了相应的伪代码。我的问题是关于流程图-黄色突出显示的区域是否正确,尤其是End the loop for increment
带圆圈。谢谢!
def primes(max_number)
integers = []
i = 2
while i <= max_number
integers << i
i = i + 1
end
index = 0
multiplier = 2
while integers[index] != nil
while (integers[index] * multiplier) <= max_number
integers.delete(integers[index] * multiplier)
multiplier = multiplier + 1
end
index = index + 1
multiplier = 2
end
p integers
end
primes(100)
流程图
伪代码
define primes(maximum_number) (define a method called primes and argument it will take is maximum_number)
integers = assign empty array
i = 2 (1 is neither prime or composite)
while i is less than or equal to 100
integers << i (add prim numbers into the list called integers)
increment i by 1
end (continue this while loop as long as the
condition set is true.)
# comment - this while loop is to cross off the prime numbers' multiples
index = 0
multiplier = 2 (the first prime number is 2. )
index = 0
multiplier = 2
while (integers[index] * multiplier) is less than
maxinum_number
integers.delete(integers[index] * multiplier)
multiplier += 1
(It will delete the multiple fromt he array and
then increase the multipler by 1, e.g. from 2
to 3, 3 to 4, etc.)
end
increment index by 1
set multiplier to 2 before ending the loop.
end
p integers
end