Ruby-Eratosthenes筛网-流程图问题-质数1至100

时间:2019-12-02 03:32:47

标签: ruby primes pseudocode flowchart sieve-of-eratosthenes

我刚刚学习了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)

流程图

Prime Number Flowchart

伪代码

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 

0 个答案:

没有答案