国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Eratosthenes篩選法求小于N的所有素?cái)?shù)個(gè)數(shù)

2019-11-09 20:25:52
字體:
供稿:網(wǎng)友

求出1~N范圍中所有的素?cái)?shù),在leetcode中做過這個(gè)題目,我想從對(duì)每個(gè)1~N進(jìn)行一次遍歷,每個(gè)數(shù)判斷一次是否是素?cái)?shù)。

判斷一個(gè)數(shù)是否是素?cái)?shù)的復(fù)雜度本身也是挺高的,再進(jìn)行一次迭代,在leetcode中的結(jié)果是超時(shí):

class Solution {PRivate: bool isPrime(int n) { int sqrt_=sqrt(n); int i; for (i=2;i<=sqrt_;++i) { if(n%i==0) break; } if(i>sqrt_) return true; else return false; }public: int countPrimes(int n) { int count=0; for(int i=2;i<n;++i) { if(isPrime(i)) ++count; } return count; }};

Eratosthenes篩選法

既然篩選,先假定1~N全是素?cái)?shù),然后從第一個(gè)素?cái)?shù)2的平方4開始,去掉因子包括2的數(shù),例如4、6、8…. 然后從后一個(gè)素?cái)?shù)3的平方9開始剔除,因子包括3的數(shù),例如9、12等。。。

最后剩下的數(shù)就是所有的素?cái)?shù)。

代碼

class Solution {public: int countPrimes(int n) { if(n<2) return 0; vector<bool>primes(n + 1,true); primes[0] = false; primes[1] = false; int p = 2;//第一個(gè)素?cái)?shù) int j = p*p; int c = 0; while (j <= n) { while (j <= n) { primes[j] = false; j += p; } ++p; while (!primes[p])//尋找下一個(gè)素?cái)?shù) { ++p; } j = p*p;//從p的平方開始篩選 } return std::count(primes.begin(), primes.end()-1,true); }};
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云霄县| 柳林县| 西林县| 象山县| 天台县| 定襄县| 日喀则市| 丹江口市| 理塘县| 阿鲁科尔沁旗| 六枝特区| 兰州市| 平凉市| 怀仁县| 沂水县| 茂名市| 西安市| 禄丰县| 社旗县| 汪清县| 化州市| 通化市| 临沧市| 来安县| 全州县| 临潭县| 长海县| 红原县| 托克逊县| 余江县| 肥西县| 陆丰市| 汶川县| 黄浦区| 正宁县| 保康县| 盘山县| 阿拉善盟| 长子县| 徐州市| 茌平县|