你好, 欢迎回来｡
我想再给予你一个 挑战, 另一项任务
很明显, 这一个 都是关于数组的
我想让你熟悉一下 使用数组､ 如何访问数组以及如何创建数组｡
所以你应该写一个c程序 它会找出从3到100的所有质数｡
我们要做 它非常有效｡
所以我们要用一点 一个算法, 让你使用数组,
但非常简单的程序｡
它只会显示为输出, 从3到100的所有质数｡
你不做0的原因 3是因为你要硬编码, 这很简单｡
前两个我们的前两个质数 是非0的1和2｡
所以没有输入 到这个程序, 只是输出｡
输出结果将是 每一个素数在一行上由空格分隔｡
这是很基本的 一直到100｡
你需要创造 一个数组,
它将在每个素数生成时存储它｡
您可以硬编码第一个 2个素数,
在素数数组中为2和3｡
所以我在这里设想的是 你会创建一个数组,
你会把它命名为素数, 你会 硬编码前两个｡
硬编码很重要 因为我们要用的算法 素数和其他素数的比较
我马上解释｡
你想利用循环 这个作业只能找出100以内的质数｡
所以你应该马上 想象一个循环至少可以显示你找到的素数｡
所以这可能就是结局
循环, 即程序末尾的循环 并显示里面的所有内容｡
如果你要找出所有质数 最大为100的数组, 您不需要将数组的大小
可能超过50个因为我认为质数不会超过50个
数字, 一直到100,
但你无法设置它 因为你不知道有多少个质数｡
所以我会说当你创造 素数数组, 大小为100
所以你肯定需要一个循环 最后打印出来｡
你还需要一个循环 来找出质数｡
你可以在任何地方找到素数
算法, 但我会用这样的方法 因为如果执行此算法, 则有更多理由使用数组｡
因此,
可以使用的标准 一个数被认为是素数 如果它不能被前面的任何其他素数整除, 则它是一个素数｡
而且还有更多 但这只是起点｡
你也要只看 直到一定的数量｡
因此, 您可以使用以下代码作为 x条件｡
所以, 你需要
你可能需要两个循环｡
我们已经提到了第三个
循环输出数据, 但您需要 对于此分配有2个循环｡
我正在讨论的算法 这里有一个更改进的算法｡
所以这就是你想做的原因｡
如果你想找到质数 只要使用数组就可以了, 因为
赋值运算的目的不是为了理解质数 来了解如何使用数组｡
通过查看先前
生成的素数迫使你使用数组 存储每个素数的生成过程｡
另一种方法是 更理想的情况是你不想看到偶数｡
所以如果你要浏览
从3到100的数, 然后检查它是否是素数, 忽略偶数因为偶数永远不会是素数｡
所以在最外层的循环或
最里面的循环, 您可以检查质数是否可以被 其他质数或者确定不是偶数你可以检查一下然后跳过它｡
另一个轴条件
在最里面的循环中, 确保p的值不 超过了素数的平方根, 这是算法的另一部分
所以这可能不完全合理, 但基本上这些是我希望你们遵循的一些标准｡
跳过对偶数的任何检查, 然后算法就是寻找所有以前的素数
并且还检查p是否不
超过了素数的平方根, 因为这是另一个 检查质数的方法｡
所以你需要 一个for循环,
从5到100, 然后你可以 以2为增量, 这样您就只查找奇数｡
然后在内部for循环中 从1到另一个 值p除以素数子I大于等于素数子I｡
你可能还想 确定这个数不是质数｡
所以你不想超过 然后你还想跳出内部循环如果 你真的找到了一个质数
所以你可以检查 素数如果当前的数可以被前面的任何一个素数整除,
所以你可以看看素数数组｡
如果这个系数 等于0, 那么就没有质数
否则如果你做了这些 在整个循环中执行整个检查, 然后您就可以使用
超过素数次I大于素数次I的平方根
而你并没有找到一个质数, 那就意味着 你可以把这个质数加到质数数组中 打印出素数数组｡
所以实际的算法并不 看起来和我说的一样混乱｡
再次, 试着给予你作为 许多伪代码尽可能与外部for
循环中｡
但你需要进入
数组, 您将读取数组, 您将查看 返回数组以查看以前的值｡
它会让你 对数组非常熟悉｡
所以祝你好运, 我会提供 解决方案, 这将更有意义,
但这些 是要求和一些点击｡
-谢谢—谢谢