首页 > 编程 > C++ > 正文

c++素数筛选法

2020-02-24 14:25:40
字体:
来源:转载
供稿:网友

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++素数筛选法,希望能够帮助到对此需要的你,我们在开发程序的时候都会遇到瓶颈,这个时候我们要越过去,才能更加强大。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表