日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

素数筛选实现

發(fā)布時間:2025/7/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 素数筛选实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一般的素數(shù)篩選的思路是從2開始,將所有2的倍數(shù)去掉,然后從3開始,將3的倍數(shù)去掉,然后從下一個素數(shù)x開始,將x的倍數(shù)去掉...,這樣可以將所有素數(shù)的倍數(shù)去掉。實現(xiàn)代碼如下:

1 int PrimeOld() 2 { 3 int i; 4 5 cnt = 0; 6 memset(prime, true, sizeof(prime)); 7 for (i = 2; i < MAX; i++) 8 { 9 if (prime[i]) 10 { 11 primeUse[cnt++] = i; 12 for (int j = i + i; j < MAX; j += i) 13 { 14 prime[j] = false; 15 allCount++; 16 } 17 } 18 } 19 }

  從上面的代碼不難看出,還是會存在重復訪問的情況,如i?=?2和?i?=?5的情況都會訪問prime[20]。因此改進這個算法的方法就是盡量重復訪問的次數(shù),盡量讓prime[j]只能被訪問一次。上面代碼的思路是素數(shù)的倍數(shù)一定不是素數(shù),那么任何一個數(shù)與素數(shù)的乘積肯定也不是素數(shù),基于這個思想的代碼如下:

1 int PrimeNew() 2 { 3 int i; 4 5 memset(prime, true, sizeof(prime)); 6 allCount = 0; 7 cnt = 0; 8 for (i = 2; i < MAX; i++) 9 { 10 if (prime[i]) 11 primeUse[cnt++] = i; 12 for (int j = 0; j < cnt && i * primeUse[j] < MAX; j++) 13 { 14 prime[i * primeUse[j]] = false; 15 allCount++; 16 if (i % primeUse[j] == 0) 17 break; 18 } 19 } 20 }

  上面代碼和前面最大代碼的不同是產生剔除整數(shù)的方法不同,前者是根據(jù)當前處理到的素數(shù)的倍數(shù)來剔除,后者則是根據(jù)當前整數(shù)與已經產生的素數(shù)的乘積來剔除,效果是一樣的。但后者有一個關鍵的優(yōu)化就是當當前處理的整數(shù)已經是某個素數(shù)的倍數(shù)時,退出剔除。如果沒有這個優(yōu)化,那么還是有些prime[j]被重復訪問了,如prime[12],它顯示通過prime[6?*?2]被訪問,然后通過prime[4?*?3]被訪問。我們應該讓12只被12的最小素因子2訪問,即計算6?*?2時訪問,而不應該在4?*?3時訪問,所有對于任何數(shù)如果它是當前素數(shù)的倍數(shù)那么它就不能再與素數(shù)表中該素數(shù)之后的素數(shù)相乘了。

  測試結果也可以看出后一種方法能夠很有效的減少對同一個prime[j]的訪問。

  上面的測試結果是通過對1~100000000之間的素數(shù)篩選。times表示的是篩選所用的時間,AllCount表示再第二重循環(huán)中訪問prime數(shù)組的總次數(shù)。可以很明顯的看出,改進的方法在時間上有了比較大的提升。測試的源代碼:https://github.com/cc1989/test/blob/master/primes.cpp

  參考:http://blog.csdn.net/morewindows/article/details/7347459

總結

以上是生活随笔為你收集整理的素数筛选实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av一区免费 | av一二三 | 奇米影视一区二区三区 | 欧美一级激情 | 女人高潮娇喘1分47秒 | 久操免费视频 | 怡红院一区二区 | 国产成人视屏 | 波多野结衣av在线免费观看 | 日韩女优在线 | 中文字幕久久精品 | 男女啊啊啊视频 | 亚洲一区二区三区国产 | 看了让人下面流水的视频 | 亚洲aaaa级特黄毛片 | 成人无高清96免费 | 2020自拍偷拍 | 国产成人麻豆精品午夜在线 | 亚洲国产精品一区二区三区 | 激情网站在线 | 一二三av | 久草精品在线 | 禁欲天堂| 夜夜操网址 | 色国产精品| 色播网址 | 青青草成人网 | 日本一级片在线播放 | 操丝袜美女视频 | 日韩av女优在线观看 | 久久网中文字幕 | 女儿的朋友5中汉字晋通话 欧美成人免费高清视频 | 四虎视频| 国产在线精品观看 | 亚洲欧美第一页 | 99riav3国产精品视频 | 亚洲精品成 | 成人高清 | 健身教练巨大粗爽gay视频 | 日韩美女激情视频 | 91免费毛片| 一区www| 在线视频久| 成人久久影院 | www.婷婷.com| 99热这里只有精品8 国产一卡二 | 亚洲欧美国产精品久久久久久久 | 国产午夜精品一区二区三区视频 | 男女日屁视频 | 久久短视频| 国产精品综合一区二区 | 久久99精品国产麻豆91樱花 | 午夜va | 国产男女无遮挡猛进猛出 | 亚洲熟女乱综合一区二区 | 亚洲2022国产成人精品无码区 | 日韩av中文 | av啊啊| 特大黑人巨交性xxxx | 69xx欧美| 波多野一区二区三区 | 久久免费黄色网址 | 日本欧美不卡 | jizz少妇| 国产偷人妻精品一区 | 亚洲色图第一页 | 国产色综合网 | 国产精品福利导航 | 黄色片91 | 91av影视 | 成人黄色激情网 | 色噜噜色综合 | 天天干天天弄 | 一区二区三区视频在线免费观看 | 国产精品一区免费观看 | 欧洲mv日韩mv国产 | 日韩国产在线播放 | 国产日日操 | 看毛片看毛片 | 视频一区在线免费观看 | 中国老熟妇自拍hd发布 | 在线中文字幕亚洲 | www.男女| 免费中文字幕日韩 | 最新黄色av网址 | 熟女av一区二区 | 91精品国产色综合久久不卡98 | 中文字幕在线高清 | 青青草成人在线观看 | 综合第一页 | 国产叼嘿视频在线观看 | 中文字幕在线观看免费高清 | 日韩激情四射 | 操网站| av资源网在线 | 欧美日韩在线观看免费 | 嫩草视频在线观看视频 | 香蕉在线看 | 欧美91精品|