日韩性视频-久久久蜜桃-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

總結

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

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

主站蜘蛛池模板: 欧美日韩国产精品一区 | 成人网在线视频 | 欧美xxxxbbbb| 狠狠爱综合网 | 国产一区二区三区日韩 | 欧洲久久久久 | 黑人大群体交免费视频 | 国产小视频你懂的 | 久久影院国产 | 免费一级欧美片在线播放 | 日韩精品人妻无码一本 | 7777久久亚洲中文字幕 | 性日韩| 午夜久久久精品 | 黄色网址在线视频 | 成人午夜在线视频 | 日韩熟妇一区二区三区 | 日本不卡一区二区在线观看 | 国产欧美日韩精品一区 | 日韩欧美一区二区三区四区五区 | a级在线免费观看 | 91视频黄色 | 欧美黑人啪啪 | 亚洲欧美日韩国产一区二区 | 精品国产黄色片 | 夜夜撸网站 | 色窝窝无码一区二区三区 | 在线观看一区视频 | 午夜在线视频免费观看 | 国产精品区在线观看 | 免费av电影网站 | 日本美女黄视频 | 久久亚洲av永久无码精品 | 91网站免费入口 | 午夜视频久久 | 亚洲色图第一页 | 亚洲激情av| 欧美日韩 一区二区三区 | 麻豆影视av | 亚洲精品尤物 | 四虎综合网 | 欧美一区二区三区在线播放 | 美女又黄又免费 | 黄色在线免费观看网站 | 97人妻天天摸天天爽天天 | 操网站| 毛片视频免费播放 | 国产精品自产拍 | 午夜影院免费看 | 日本一二区视频 | 69久久成人精品 | 高清在线一区二区三区 | 国产乱子伦精品无码专区 | 超碰97免费在线 | 午夜天堂在线观看 | 丁香伊人 | 少妇又色又紧又黄又刺激免费 | 国产精品国产精品国产专区不卡 | 91色视频在线观看 | 国产亚洲无| 91国偷自产一区二区三区老熟女 | 亚洲精品欧洲精品 | 被两个男人吃奶三p爽文 | 人妻少妇被猛烈进入中文字幕 | 久久久久久久久久久97 | 亚洲第一国产 | 啪啪影音| 亚洲九九爱| 天天爱天天操 | 亚洲av电影天堂男人的天堂 | 综合网在线观看 | 国产成人精品片 | 免费精品一区二区 | 欧美性受xxxx黒人xyx性爽 | 97人人爽| 91成人精品一区在线播放 | 国产精品久久久久久人 | 青青草原国产在线 | 麻豆影音先锋 | 日韩性在线| 国产成人av一区二区三区在线观看 | 亚洲 另类 春色 国产 | 国产91av在线播放 | 在线观看免费av片 | 天天天av| 狼人伊人干 | 在线免费成人网 | 天天爽影院 | 色婷婷av一区二区三区之红樱桃 | 国产ts三人妖大战直男 | 国内精品免费 | 天天操操夜夜操操 | 九九热最新 | 国产做爰全免费的视频软件 | 初高中福利视频网站 | av在线操| 狠狠干婷婷 | 色视频2| 日本三级大片 |