青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

ACM___________________________

______________白白の屋
posts - 182, comments - 102, trackbacks - 0, articles - 0
<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

常用鏈接

留言簿(24)

隨筆分類(332)

隨筆檔案(182)

FRIENDS

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

評論排行榜

轉載文章 : 轉載自Tanky Woo 的程序人生 , <------- 請大家多多支持奮斗哥哈


The Sieve of Eratosthees
愛拉托遜斯篩選法思想:對于不超過n的每個非負整數P,刪除2*P, 3*P…,當處理

完所有數之后,還沒有被刪除的就是素數。

若用vis==1表示已被刪除,則代碼如下:
—————————————————–
代碼一:

  1. memset(vis, 0, sizeof(vis));
  2. for(int i = 2; i <= 100; i++)
  3. for(int j = i*2; j <= 100; j += i)
  4.   vis[j] = 1;
復制代碼
上面的代碼效率已經很高了。
但還可以繼續優化。
看一個改進的代碼:
——————————————————
代碼二:
  1. int m = sqrt(double(n+0.5));

  2. for(int i = 2; i <= m; i++)
  3. if(!vis[i])
  4. {
  5.   prime[c++] = i;
  6.   for(int j = i*i; j <= n; j += i)
  7.   {
  8.    vis[j] = 1;
  9.   }
  10. }
復制代碼
——————————————————
先分析代碼一:
這個代碼就是簡單的將Eratosthenes篩選法描述出來。不用多說。
分析代碼二:
考慮幾點:
1.為何從i=2~m?
因為下面的j是從i*i開始的。
2.為何j從i*i開始?
因為首先在i=2時,偶數都已經被刪除了。
其次,“對于不超過n的每個非負整數P”, P可以限定為素數,
為什么?
因為,在 i 執行到P時,P之前所有的數的倍數都已經被刪除,若P

沒有被刪除,則P一定是素數。
而P的倍數中,只需看:
(p-4)*p, (p-2)*p, p*p, p*(p+2), p*(p+4)
(因為P為素數,所以為奇數,而偶數已被刪除,不需要考慮p*(p

-1)等)
又因為(p-4)*p 已在 (p-4)的p倍中被刪去,故只考慮:
p*p, p*(p+2)….即可
這也是i只需要從2到m的原因。
當然,上面 p*p, p*(p+2)…的前提是偶數都已經被刪去,而代碼

二若改成 j += 2*i ,則沒有除去所有偶數,所以要想直接 加2*i

。只需在代碼二中memset()后面加:
for(int i = 4; i <= n; i++)
     if(i % 2 == 0)
          vis = 1;
這樣,i只需從3開始,而j每次可以直接加 2*i.
——————————————————
這里用代碼二給大家一個完整的代碼:
  1. //版本二
  2. //Author: Tanky Woo
  3. //BBS:www.cppleyuan.com
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <math.h>
  7. int vis[100];
  8. int prime[100];
  9. int c = 0;
  10. int n;
  11. int main()
  12. {
  13.         scanf("%d", &amp;n);
  14.         int cnt = 1;

  15.         memset(vis, 0, sizeof(vis));
  16.         int m = sqrt(double(n+0.5));

  17.         for(int i = 2; i <= m; i++)
  18.                 if(!vis[i])
  19.                 {
  20.                         prime[c++] = i;
  21.                         for(int j = i*i; j <= n; j += i)
  22.                         {
  23.                                 vis[j] = 1;
  24.                                 //printf("%d\n", j);
  25.                         }
  26.                 }

  27.         for(int i = 2; i < n; i++)
  28.         {
  29.                 if(vis[i] == 0)
  30.                 {
  31.                         printf("%d ", i);
  32.                         cnt++;
  33.                         if(cnt % 10 == 0)
  34.                                 printf("\n");
  35.                 }
  36.         }
  37.         printf("\ncnt = %d\n", cnt);
  38.         return 0;
  39. }
復制代碼
完畢。

歡迎大家和我交流。 

轉載文章 : 轉載自Tanky Woo 的程序人生

Feedback

# re: The Sieve of Eratosthees ( 愛拉托遜斯篩選法 數論 篩法 )  回復  更多評論   

2010-08-07 20:45 by Tanky Woo
Orz奮斗哥

# re: The Sieve of Eratosthees ( 愛拉托遜斯篩選法 數論 篩法 )  回復  更多評論   

2010-08-07 22:41 by MiYu
- -||| 我無語....
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩亚洲欧美成人一区| 夜夜嗨网站十八久久| 亚洲欧美日韩综合| 国产毛片精品国产一区二区三区| 亚洲午夜电影在线观看| 亚洲三级影院| 欧美三区免费完整视频在线观看| 国产精品99久久久久久久女警 | 国产精品盗摄一区二区三区| 在线一区二区三区做爰视频网站| 亚洲国产精品ⅴa在线观看| 久久性色av| 一区在线电影| 久久一区二区三区四区| 欧美在线亚洲| 黑人操亚洲美女惩罚| 久久久久青草大香线综合精品| 亚洲一区免费| 国产欧美亚洲精品| 久久gogo国模裸体人体| 性欧美videos另类喷潮| 国产一区二区三区久久悠悠色av| 久久gogo国模啪啪人体图| 欧美一区二区三区免费观看 | 亚洲小说春色综合另类电影| 欧美网站大全在线观看| 亚洲欧美高清| 久久av免费一区| 精品av久久707| 欧美激情视频一区二区三区免费 | 亚洲男人的天堂在线观看| 一本到高清视频免费精品| 国产精品蜜臀在线观看| 久久九九免费| 免播放器亚洲| 在线亚洲观看| 午夜免费久久久久| 亚洲国产欧美日韩| 日韩视频在线一区二区三区| 国产欧美精品国产国产专区| 久热精品在线视频| 欧美精品一区二区在线播放| 亚洲专区国产精品| 久久久久久久久蜜桃| 亚洲欧洲一区二区三区| 亚洲社区在线观看| 亚洲国产91精品在线观看| 日韩一区二区福利| 国外成人在线| 99热免费精品| 伊甸园精品99久久久久久| 91久久久在线| 国产私拍一区| 亚洲精品一区久久久久久| 国产精品美女www爽爽爽| 欧美va亚洲va国产综合| 国产精品日韩| 99国产一区二区三精品乱码| 一区二区三区亚洲| 一区二区三区导航| 最新成人av网站| 欧美亚洲在线播放| 亚洲小视频在线| 另类尿喷潮videofree | 国产日产精品一区二区三区四区的观看方式 | 一区二区三区日韩精品视频| 韩国美女久久| 亚洲欧美三级在线| 亚洲午夜在线观看| 欧美成人在线免费视频| 乱人伦精品视频在线观看| 国产精品美女999| 亚洲精品视频在线观看免费| 伊人精品在线| 欧美一区二区性| 亚洲欧美日韩在线高清直播| 欧美大片免费看| 欧美国产精品日韩| 在线观看成人小视频| 午夜精品亚洲一区二区三区嫩草| 亚洲私人影院在线观看| 欧美激情欧美激情在线五月| 免费在线观看精品| 在线精品一区| 久久综合久久综合这里只有精品 | 国产精品美女www爽爽爽视频| 亚洲国内自拍| 亚洲欧洲精品一区二区| 久久网站免费| 欧美成人自拍| 亚洲高清网站| 免费人成精品欧美精品| 欧美激情一区二区在线 | 亚洲欧美日韩一区二区三区在线观看 | 亚洲宅男天堂在线观看无病毒| 欧美黄色影院| 亚洲精品综合| 亚洲一区二区三区四区中文| 欧美午夜欧美| 一区二区三区日韩| 小黄鸭视频精品导航| 国产精品日韩在线观看| 亚洲综合视频网| 久久成人亚洲| 亚洲国产精品黑人久久久 | 久久夜色精品国产欧美乱极品| 欧美三级午夜理伦三级中文幕| 久久久久国产精品麻豆ai换脸| 欧美日韩成人网| 欧美一级在线视频| 女女同性精品视频| 99国产精品国产精品久久| 国产伦精品一区| 久久久国际精品| 亚洲午夜三级在线| 久久夜色精品国产噜噜av| 亚洲香蕉成视频在线观看| 国产亚洲女人久久久久毛片| 欧美激情精品久久久| 一区二区三区四区精品| 欧美成人午夜激情在线| 亚洲视频中文| 亚洲人成77777在线观看网| 欧美午夜精品久久久久久超碰| 久热国产精品| 中文在线不卡| 亚洲日本在线观看| 久久久久久久综合日本| 亚洲美女区一区| 国产午夜精品一区二区三区欧美| 欧美人妖另类| 久久久久.com| 亚洲国产成人高清精品| 久久av资源网站| 亚洲国产精品激情在线观看| 欧美日韩在线另类| 久久夜色精品国产亚洲aⅴ| 日韩一级大片在线| 亚洲精品乱码久久久久久日本蜜臀| 性一交一乱一区二区洋洋av| 中文国产一区| 亚洲国产精品久久91精品| 国产一区二区三区黄| 欧美日韩精品二区第二页| 欧美激情va永久在线播放| 欧美在线一二三四区| 欧美影院成人| 亚洲综合99| 亚洲欧美综合国产精品一区| 亚洲理论在线观看| 亚洲三级性片| 亚洲国产精品成人综合色在线婷婷| 免费精品视频| 久久蜜桃资源一区二区老牛| 亚洲欧美中文在线视频| 亚洲巨乳在线| 亚洲精品久久7777| av成人国产| 亚洲精品乱码久久久久久久久 | 另类亚洲自拍| 欧美成在线视频| 玖玖玖免费嫩草在线影院一区| 久久久久久久国产| 欧美一区二区三区在线| 久久久综合视频| 久久久久天天天天| 欧美激情精品久久久久| 欧美激情亚洲综合一区| 欧美日韩一区高清| 欧美午夜精品久久久久久久| 国产精品久久久久久久久久直播| 欧美午夜精品久久久久久超碰| 国产精品一区二区三区久久久| 国产精品免费久久久久久| 国产亚洲一区精品| 一区视频在线看| 亚洲黄色在线看| 亚洲欧美日韩一区在线| 欧美一区二区三区免费视| 欧美高清在线视频观看不卡| 亚洲黄网站在线观看| 亚洲欧洲久久| 亚洲精品1区2区| 亚洲欧美大片| 久久久99免费视频| 猫咪成人在线观看| 欧美伦理影院| 国产乱码精品一区二区三区五月婷 | 久久久99免费视频| 免费成人高清| 欧美性久久久| 国模精品一区二区三区| 激情小说另类小说亚洲欧美| 激情五月***国产精品| 永久域名在线精品| 亚洲午夜未删减在线观看| 一区二区欧美日韩视频| 久久久久久久999精品视频| 欧美成人午夜剧场免费观看| 日韩香蕉视频|