亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

篩選法的C++實現

2020-01-26 15:43:22
字體:
來源:轉載
供稿:網友

篩選法

介紹:
篩選法又稱篩法,是求不超過自然數N(N>1)的所有質數的一種方法。據說是古希臘的埃拉托斯特尼(Eratosthenes,約公元前274~194年)發明的,又稱埃拉托斯特尼篩子。

具體做法是:先把N個自然數按次序排列起來。1不是質數,也不是合數,要劃去。第二個數2是質數留下來,而把2后面所有能被2整除的數都劃去。2后面第一個沒劃去的數是3,把3留下,再把3后面所有能被3整除的數都劃去。3后面第一個沒劃去的數是5,把5留下,再把5后面所有能被5整除的數都劃去。這樣一直做下去,就會把不超過N的全部合數都篩掉,留下的就是不超過N的全部質數。因為希臘人是把數寫在涂臘的板上,每要劃去一個數,就在上面記以小點,尋求質數的工作完畢后,這許多小點就像一個篩子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼篩”,簡稱“篩法”。(另一種解釋是當時的數寫在紙草上,每要劃去一個數,就把這個數挖去,尋求質數的工作完畢后,這許多小洞就像一個篩子。)

用C++實現篩選法:
以通過篩選法求100以內的素數為例

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 int i,j,a[101];//這里定義101大小的數組,是為了和自然數相對應,即:a[2]對應自然數2
 for(i=2;i<100;i++)
     a[i]=1;//完成對數組的初始化操作
 for(i=2;i<100;i++){
  for(j=2*i;j<100;j+=i){
   a[j]=0;//對相應的倍數進行排除
  }
 }
 //執行輸出操作
 for(i=2;i<100;i++){
  if(a[i])
  cout<<i<<'/t';
 }
 cout<<endl;
 return 0;
}

一些思考和優化
以前學習計算素數的算法的時候,有一個比較普遍的優化的算法。

也就是用

復制代碼 代碼如下:

for(i=1;i<(j/2);i++)

或者
復制代碼 代碼如下:

for(i=1;i<sqrt(j);i++)//使用sqrt()函數需要引入math.h這個頭文件

來替代
復制代碼 代碼如下:

for(i=1;i<j;i++)

可以顯著的降低算法的復雜度

一開始直接使用,不知道是什么原理。后來看了看,原來原理是這樣的:

以sqrt(j)代替i為例

求素數最基本的方法,是用i去除以2到j-1之間的所有的整數,如果有可以整除的情況,則不是素數;如果都不可以整除,則是素數。

而i=sqrt(j)*sqrt(j)

我們用i去除以2到sqrt(j)之間的所有的整數,這就可以覆蓋2到i-1之間的所有的整數。

設2<k<sqrt(j),則若j%k==0,則sqrt(j)<m=(j%k)<j-1。

也就是說,因為是除法運算求整除的運算,所以除以小的可以整除,可就是除以相應的大的可以整除。

優化之后的代碼:

復制代碼 代碼如下:

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
 int i,j,a[101];//這里定義101大小的數組,是為了和自然數相對應,即:a[2]對應自然數2
 for(i=2;i<100;i++)
     a[i]=1;//完成對數組的初始化操作
 for(i=2;i<sqrt(100);i++){
  for(j=2*i;j<100;j+=i){
   a[j]=0;//對相應的倍數進行排除
  }
 }
 //執行輸出操作
 for(i=2;i<100;i++){
  if(a[i])
  cout<<i<<'/t';
 }
 cout<<endl;
 return 0;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲福利在线视频| 欧美中文在线观看国产| 国产在线一区二区三区| 一区二区三区亚洲| 午夜精品免费视频| 国产精品久久国产精品99gif| 亚洲色图欧美制服丝袜另类第一页| 国产精品专区一| www.日韩视频| 欧美性猛交视频| 亚洲永久免费观看| 国产视频精品一区二区三区| 国产在线观看精品| 久久男人av资源网站| 亚洲欧美在线第一页| 精品无人国产偷自产在线| 国产精品嫩草影院一区二区| www.国产精品一二区| 亚洲伊人成综合成人网| 大荫蒂欧美视频另类xxxx| 欧美成人小视频| 亚洲精品美女久久久| 亚洲的天堂在线中文字幕| 欧美黑人狂野猛交老妇| 国产综合香蕉五月婷在线| 亚洲第一天堂无码专区| 国产mv久久久| 国产成人精品综合| 国产精品igao视频| 91香蕉嫩草神马影院在线观看| 国产一区深夜福利| 亚洲天堂开心观看| 欧美日韩一区二区在线播放| 国产精品一区=区| 欧美激情视频免费观看| 欧美精品videos另类日本| 国产精品视频免费在线观看| 欧美激情小视频| 性色av一区二区三区在线观看| 国产suv精品一区二区三区88区| 日韩一区二区在线视频| 一区二区国产精品视频| www.精品av.com| 疯狂蹂躏欧美一区二区精品| 亚洲高清久久久久久| 国产精品激情自拍| 青青在线视频一区二区三区| 欧美极品在线播放| 米奇精品一区二区三区在线观看| 国产精品你懂得| 78色国产精品| 久久中文久久字幕| 深夜福利91大全| 国内精品免费午夜毛片| 性色av一区二区三区红粉影视| 久久久精品国产网站| 亚洲免费视频一区二区| 91经典在线视频| 亚洲国产女人aaa毛片在线| 久久久精品免费| 亚洲美女中文字幕| 亚洲精品日韩激情在线电影| 亚洲天堂网站在线观看视频| 日本国产一区二区三区| 国产精品免费一区二区三区都可以| 亚洲国产婷婷香蕉久久久久久| 午夜精品三级视频福利| 在线视频亚洲欧美| 欧美极品在线视频| 欧美成人午夜激情在线| 欧美激情中文字幕在线| 国产成人精品久久二区二区91| 久久成人精品一区二区三区| 日韩精品在线影院| 免费不卡欧美自拍视频| 另类天堂视频在线观看| 日韩美女在线看| 成人中心免费视频| 美女性感视频久久久| www.99久久热国产日韩欧美.com| 色综合久久悠悠| 色偷偷av一区二区三区乱| 亚洲第一精品夜夜躁人人躁| 欧美有码在线视频| 国产精品老牛影院在线观看| 色综合视频网站| 久久久久久久国产精品| 日韩精品视频免费在线观看| 日韩中文字幕在线免费观看| 欧美性猛交xxxxx水多| 国产精品中文字幕在线| 欧洲亚洲免费在线| 九九九热精品免费视频观看网站| 国产狼人综合免费视频| 日韩中文字幕免费| 国产精品999| 欧美日本啪啪无遮挡网站| 欧美视频在线免费| 91黄色8090| 中文字幕亚洲一区二区三区五十路| 午夜免费久久久久| 国产91精品久久久久| 成人乱色短篇合集| 久久91精品国产91久久跳| 欧美视频在线观看免费网址| 8x拔播拔播x8国产精品| 在线观看日韩视频| 国产亚洲精品成人av久久ww| 日韩在线免费观看视频| 伊人久久久久久久久久久| 国产精品久久久久久久午夜| 亚洲第一网站免费视频| 国产精品视频最多的网站| 91精品国产色综合久久不卡98| 日本一区二区不卡| 日韩在线一区二区三区免费视频| 美日韩丰满少妇在线观看| 欧美一级淫片videoshd| 91九色视频导航| 精品久久久一区二区| 久久久久成人网| 九九久久精品一区| 久久影视电视剧免费网站清宫辞电视| 国产欧美一区二区三区四区| 精品国产31久久久久久| 久久久久久久久网站| 久久久久久久电影一区| 亚洲美女www午夜| 色偷偷噜噜噜亚洲男人的天堂| 日韩av电影手机在线观看| 久久频这里精品99香蕉| 国产亚洲欧洲在线| 亚洲成人久久久| 日韩精品视频免费在线观看| 欧美精品电影在线| 国产精品免费在线免费| 成人黄色免费在线观看| 97成人精品视频在线观看| 日韩美女av在线免费观看| 精品亚洲aⅴ在线观看| 国产午夜精品久久久| 国产精品久久激情| 久久久久久国产精品久久| xvideos亚洲人网站| 蜜臀久久99精品久久久无需会员| 亚洲性日韩精品一区二区| 成人有码在线视频| 国产精品高潮视频| 久久久国产一区| 亚洲黄页网在线观看| 一区二区在线视频播放| 亚洲国产天堂久久国产91| 久久精品国产清自在天天线| 久久亚洲春色中文字幕| 性欧美激情精品| 91地址最新发布| 欧美成人免费一级人片100| 国产99久久精品一区二区永久免费| 中文字幕久久亚洲| 日韩欧美在线免费观看| 亚洲第一中文字幕| 久久精品国产一区二区电影| 日韩久久午夜影院| 久久69精品久久久久久国产越南|