c++筛选法求素数,c++素数筛选法实例介绍

科技资讯 投稿 6400 0 评论

c++筛选法求素数,c++素数筛选法实例介绍

以下内容主要是针对遇上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++素数筛选法实例介绍全部内容,希望文章能够帮你解决相关问题,更多请关注本站相关栏目的其它相关文章!

编程笔记 » c++筛选法求素数,c++素数筛选法实例介绍

赞同 (27) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽