您好,登錄后才能下訂單哦!
本篇內容主要講解“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++素數篩選法實例介紹”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。