💡
原文英文,约300词,阅读约需1分钟。
📝
内容提要
埃拉托斯特尼筛法是一种古老的算法,用于在指定范围内查找所有素数。该算法使用布尔数组标记素数,时间复杂度为O(n log log n)。外层循环遍历到sqrt(n),内层循环则标记所有倍数为非素数。
🎯
关键要点
- 埃拉托斯特尼筛法是一种古老的算法,用于查找指定范围内的所有素数。
- 该算法使用布尔数组来标记素数,时间复杂度为O(n log log n)。
- 外层循环遍历从2到sqrt(n),内层循环标记所有倍数为非素数。
- 算法的基本逻辑是将所有数字初始化为TRUE,然后标记非素数为FALSE。
- 示例代码使用C++实现了埃拉托斯特尼筛法。
❓
延伸问答
埃拉托斯特尼筛法的基本原理是什么?
埃拉托斯特尼筛法通过使用布尔数组标记素数,外层循环遍历从2到sqrt(n),内层循环标记所有倍数为非素数。
埃拉托斯特尼筛法的时间复杂度是多少?
该算法的时间复杂度为O(n log log n)。
如何在C++中实现埃拉托斯特尼筛法?
可以通过创建布尔数组并初始化为TRUE,然后使用双重循环标记非素数,最后输出所有标记为TRUE的数字。
埃拉托斯特尼筛法适用于哪些范围的素数查找?
该算法适用于查找指定范围内的所有素数,具体范围由用户输入的n决定。
埃拉托斯特尼筛法的外层和内层循环分别做什么?
外层循环遍历从2到sqrt(n),内层循环标记所有倍数为非素数。
埃拉托斯特尼筛法的初始步骤是什么?
算法的初始步骤是将所有数字初始化为TRUE,表示假设所有数字都是素数。
➡️