Bra*_*n12 2 c arrays algorithm primes pseudocode
在我的书中,Stephen G. Kochan 的《C 语言编程》(第四版)中,我有一个实现埃拉托斯特尼筛法算法的任务,如下所示:
\n显示 1 到 n = 150 之间的所有素数
\n 2 <= i <= n.\nRun Code Online (Sandbox Code Playgroud)\n set <sub>Pixj</sub> to 1.\n Step 6: Add 1 to i and go to step 3.\nRun Code Online (Sandbox Code Playgroud)\n我理解广泛的概念,但很难理解算法中的步骤以及每个步骤的目的。
\n问题:
\n在步骤1中,将所有元素p[i]设置为0的目的是什么?数组元素不需要从 0 到 150 开始吗?
\n在步骤 4 中,这是否意味着 i 的倍数得到值 0,并且如果任何非零的值将是素数?本质上,它会将 i 的所有倍数转换为 0(合数)并保留所有素数?
\n第 5 步让我很困惑,我不知道如何就此形成一个连贯的问题。像这样的下标是什么意思Pixj?另外,步骤 4 的逻辑没有意义,如果可能的话,我需要更通俗易懂的术语。(只要有一个提示就可以了,这样我就可以自己得到)
\n仅供参考,我是学习计算机科学和编程基础知识的初学者,因此我们将不胜感激!上面的练习来自第 6 章:数组。谢谢你!
\n我还没有尝试过代码,我需要先了解算法步骤。
\n\n\n在步骤1中,将所有元素p[i]设置为0的目的是什么?数组元素不需要从 0 到 150 开始吗?
\n
数组P用于记录一个整数是否已知为非素数。每个元素 P i都初始化为零,以表示算法最初不知道i是否为非素数。
\n\n\n在步骤 4 中,这是否意味着 i 的倍数得到值 0,并且如果任何非零的值将是素数?[本质上],它将把 i 的所有倍数转换为 0(合数)并保留所有素数?
\n
第 4 步描述得不好。当算法到达步骤 4 时,已经执行了足够的工作,如果 P i为零,则i必须是素数。在步骤 4 中,算法旨在通过某种方式报告这一事实,例如将i写入标准输出。
\n\n\n第 5 步让我很困惑,我不知道如何就此形成一个连贯的问题。Pixj 这样的下标是什么意思?另外,步骤 4 的逻辑没有意义,如果可能的话,我需要更通俗易懂的术语。(只要有一个提示就可以了,这样我就可以自己得到)
\n
\xe2\x80\x9cPixj\xe2\x80\x9d 表示 P i \xc3\x97 j。在步骤 5 中,算法有一个i并在j上迭代循环。在该循环的每次迭代中,代码应计算乘积t = i \xc3\x97 j并将 P t设置为 1,表示t已知为非素数(因为它是i和j的乘积) )。
\n