c++素數(shù)篩選法
素數(shù)(又稱質(zhì)數(shù)):指在大于一的自然數(shù)中,只能被1和它自身整除的自然數(shù);
素數(shù)篩選法是指一種非常規(guī)的素數(shù)判定方法,比較高效率;
原理:任何數(shù)的整數(shù)倍必定不是素數(shù),大于二的偶數(shù)必定不是素數(shù)。
我們以找出100以內(nèi)的素數(shù)為例,利用原理,我們可以首先排除偶數(shù)是素數(shù),然后進(jìn)一步判斷奇數(shù)
實(shí)現(xiàn)將偶數(shù)標(biāo)記為0,素數(shù)標(biāo)記為1;(也可以用一個bool數(shù)組將偶數(shù)標(biāo)記為false,奇數(shù)標(biāo)記為true)

下面是全部代碼
#include <iostream>
#include <cmath>
#define MAX 100
using namespace std;
int main()
{
//設(shè)置標(biāo)記,將偶數(shù)標(biāo)記為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;
}
相關(guān)文章
C++實(shí)現(xiàn)Dijkstra算法的示例代碼
迪杰斯特拉算法(Dijkstra)是由荷蘭計算機(jī)科學(xué)家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是從一個頂點(diǎn)到其余各頂點(diǎn)的最短路徑算法。本文將用C++實(shí)現(xiàn)Dijkstra算法,需要的可以參考一下2022-07-07
C/C++實(shí)現(xiàn)貪吃蛇逐步運(yùn)動效果
這篇文章主要為大家詳細(xì)介紹了C/C++實(shí)現(xiàn)貪吃蛇逐步運(yùn)動效果的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05
xxx_cast類型轉(zhuǎn)換的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄獂xx_cast類型轉(zhuǎn)換的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12

