以下内容主要是针对遇上c++素数筛选法实例介绍等问题,我们该怎么处理呢。下面这篇文章将为你提供一个解决思路,希望能帮你解决到相关问题。
一、什么是素数筛选法
素数筛选法,也叫做筛法,是一种用来求出小于等于某个正整数n的所有素数的一种方法。它的基本思想是:先将2到n之间的数按照自然数的顺序排列,先把2删去,然后把2的倍数也删去,然后把3删去,把3的倍数也删去,依次类推,最后剩下的就是素数。
二、素数筛选法的实现
素数筛选法的实现主要是利用一个布尔类型的数组,用来标记某个数是否是素数,用true表示是素数,用false表示不是素数。首先,将数组中的每一个元素都设置为true,然后从2开始,将2的倍数都设置为false,接着,将3的倍数都设置为false,以此类推,最后剩下的就是素数。
三、C++素数筛选法实例
#include <iostream>
using namespace std;
//素数筛选法
void Prime(int n)
{
//初始化布尔数组
bool* prime = new bool[n + 1];
for (int i = 0; i <= n; i++)
prime[i] = true;
//筛选
for (int i = 2; i <= n; i++)
{
if (prime[i])
{
for (int j = i * 2; j <= n; j += i)
prime[j] = false;
}
}
//输出
for (int i = 2; i <= n; i++)
{
if (prime[i])
cout << i << " ";
}
}
int main()
{
int n;
cin >> n;
Prime(n);
return 0;
}
上述代码实现了一个简单的素数筛选法,它的输入是一个正整数n,输出是小于等于n的所有素数。首先,定义一个布尔类型的数组prime,用来标记某个数是否是素数,将数组中的每一个元素都设置为true,然后从2开始,将2的倍数都设置为false,接着,将3的倍数都设置为false,以此类推,最后剩下的就是素数,将这些素数输出即可。
总结
以上就是为你整理的c++素数筛选法实例介绍全部内容,希望文章能够帮你解决相关问题,更多请关注本站相关栏目的其它相关文章!