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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

线性筛法--有测试代码

發(fā)布時(shí)間:2025/3/15 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性筛法--有测试代码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//線(xiàn)性篩法--有測(cè)試代碼 /* 數(shù)論 - 歐拉篩法(線(xiàn)性篩)的解釋 https://blog.csdn.net/Losk_0/article/details/87884390素?cái)?shù)篩法詳解(歐拉篩&埃氏篩) https://blog.csdn.net/FeilingGong/article/details/83660779算法筆記(四)——?dú)W拉篩法求素?cái)?shù) https://blog.csdn.net/weixin_42172676/article/details/81978475快速線(xiàn)性篩法的原理和值得借鑒的方法【解析算法】 https://blog.csdn.net/nuanxin_520/article/details/41207145快速線(xiàn)性篩法的特點(diǎn)就是不會(huì)重復(fù)篩除一個(gè)合數(shù)。它的原理是前提是:一個(gè)合數(shù) i=p1*p2*...*pn, pi都是素?cái)?shù)(2<=i<=n)pi<=pj( i<=j )p1是最小的系數(shù)。這樣每一個(gè)合數(shù)就有一個(gè)確定的表示方法,不會(huì)重復(fù)。(像12=2*2*3)No.1:我們現(xiàn)在規(guī)定一個(gè)合數(shù)由兩個(gè)數(shù)得到。NO.2:那么合數(shù)有兩種。1.素?cái)?shù)*素?cái)?shù)=合數(shù) 2.一個(gè)最小的素?cái)?shù)*合數(shù)=合數(shù)篩除:如果遇到i為素?cái)?shù),那么一個(gè)大的素?cái)?shù) i 乘以不大于 i 的素?cái)?shù), 這樣篩除的數(shù)跟之前的是不會(huì)重復(fù)的,前面已經(jīng)通過(guò)比i小的質(zhì)數(shù)篩掉了 i為素?cái)?shù),前面的素?cái)?shù)肯定不能將素?cái)?shù)i篩掉 如果遇到i為合數(shù),我們只認(rèn)為合數(shù)由一個(gè)最小的素?cái)?shù)*合數(shù)得到,也不會(huì)重復(fù)(就像12=2*6而不是12=3*4)則i必然可以由i前面的質(zhì)數(shù)*(一個(gè)質(zhì)數(shù)或合數(shù))組成i這個(gè)數(shù) 6=2*3一般的線(xiàn)性篩法 https://www.cnblogs.com/KyleDeng/p/9244850.html要保證的是每個(gè)合數(shù)只被這個(gè)合數(shù)最小的質(zhì)因子篩除,而且只篩一次,沒(méi)有重復(fù)篩除 */ #include <bits/stdc++.h> using namespace std; int const MAX_N=10000+10; int v[MAX_N],prime[MAX_N]; int n; void primes(int n) {int m;memset(v,0,sizeof(v));//質(zhì)數(shù)的個(gè)數(shù) m=0; /* 1、如果遇到i為素?cái)?shù),那么一個(gè)大的素?cái)?shù) i 乘以不大于 i 的素?cái)?shù), 這樣篩除的數(shù)跟之前的是不會(huì)重復(fù)的2、如果遇到i為合數(shù),我們只認(rèn)為合數(shù)由一個(gè)最小的素?cái)?shù)*合數(shù)得到, 也不會(huì)重復(fù)(就像12=2*6而不是12=3*4) */ for(int i=2;i<=n;++i){if( v[i]==0){//記錄每個(gè)數(shù)的最小質(zhì)因子 v[i]=i; prime[++m]=i;cout<<"質(zhì)數(shù)i="<<i<<endl;}for(int j=1;j<=m;++j){//i有比prime[j]更小的質(zhì)因子,或者超出n的范圍 if( prime[j]>v[i] || prime[j]>n/i){cout<<"prime["<<j<<"]="<<prime[j]<<" v["<<i<<"]="<<v[i]<<endl;cout<<n<<"/"<<i<<"="<<n/i<<endl;cout<<"&&&&&&&&&&&&&&&&&&&&&&&&&&&&"<<endl;break;}//prime[j]是合數(shù)i*prime[j]的最小質(zhì)因子 v[i*prime[j]]=prime[j];cout<<"i="<<i<<" j="<<j<<" prime["<<j<<"]="<<prime[j]<<endl;cout<<i<<"*"<<prime[j]<<"="<<i*prime[j]<<endl;cout<<"v["<<i*prime[j]<<"]="<<v[i*prime[j]]<<endl;cout<<"-------------------------"<<endl;}//cout<<"**************************************"<<endl; }for(int i=1;i<=m;++i){cout<<prime[i]<<endl;}} int main( void ) {cin>>n;primes(n);return 0; }

?


參考相關(guān)鏈接:

數(shù)論 - 歐拉篩法(線(xiàn)性篩)的解釋

https://blog.csdn.net/Losk_0/article/details/87884390

素?cái)?shù)篩法詳解(歐拉篩&埃氏篩)

https://blog.csdn.net/FeilingGong/article/details/83660779

算法筆記(四)——?dú)W拉篩法求素?cái)?shù)

https://blog.csdn.net/weixin_42172676/article/details/81978475

快速線(xiàn)性篩法的原理和值得借鑒的方法【解析算法】
https://blog.csdn.net/nuanxin_520/article/details/41207145

一般的線(xiàn)性篩法
https://www.cnblogs.com/KyleDeng/p/9244850.html

總結(jié)

以上是生活随笔為你收集整理的线性筛法--有测试代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。