本篇内容主要讲解“c++素数筛选法实例介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c++素数筛选法实例介绍”吧!
素数(又称质数):指在大于一的自然数中,只能被1和它自身整除的自然数;
素数筛选法是指一种非常规的素数判定方法,比较高效率;
原理:任何数的整数倍必定不是素数,大于二的偶数必定不是素数。
我们以找出100以内的素数为例,利用原理,我们可以首先排除偶数是素数,然后进一步判断奇数
实现将偶数标记为0,素数标记为1;(也可以用一个bool数组将偶数标记为false,奇数标记为true)
下面是全部代码
#include <iostream>
#include <cmath>
#define MAX 100
using namespace std;
int main()
{
//设置标记,将偶数标记为0
int prime[MAX+1];
for(int i=1;i<=MAX;i++)
{
if(i%2==0)
{
prime[i]=0;
}
else prime[i]=1;
}
for(int i=3;i<=sqrt(MAX);i++)
{
if(prime[i]==1)
{
for(int j=i+i;j<=MAX;j=j+i)
{
prime[j]=0;
}
}
}
cout<<"2"<<" ";
for(int i=3;i<=MAX;i++)
{
if(prime[i]==1)
cout<<i<<" ";
}
return 0;
}
到此,相信大家对“c++素数筛选法实例介绍”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。