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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java 素数 五行_【数论】素数的判定与筛法

發(fā)布時(shí)間:2025/3/19 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 素数 五行_【数论】素数的判定与筛法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

素?cái)?shù)的判定與篩法

判定:很簡(jiǎn)單嘛!暴力大法參上!

#include

#include

unsigned long int n,i,j,a,b;

using namespace std;

int main()

{

cin>>n;

j=(int)sqrt(n);

for(i=2;i<=j;i++)

if(n%i==0) break;

if(i>j&&n!=0&&n!=1) cout<

else cout<

}

(不相信從來不刷水的我竟然做了這樣的題……)

這就是傳說中的O(根號(hào)N)大暴力……

那么還有個(gè)算法叫Miller-rabin……

那么我們來介紹一下這是個(gè)什么東西:

首先讓我們了解這幾個(gè)概念:

費(fèi)馬小定理:對(duì)于素?cái)?shù)p和任意整數(shù)a,有ap?≡ a(mod p)(同余)。反過來,滿足ap?≡ a(mod p),p也幾乎一定是素?cái)?shù)。

偽素?cái)?shù):如果n是一個(gè)正整數(shù),如果存在和n互素的正整數(shù)a滿足 an-1?≡ 1(mod n),我們說n是基于a的偽素?cái)?shù)。如果一個(gè)數(shù)是偽素?cái)?shù),那么它幾乎肯定是素?cái)?shù)。

Miller-Rabin測(cè)試:不斷選取不超過n-1的基b(s次),計(jì)算是否每次都有bn-1?≡ 1(mod n),若每次都成立則n是素?cái)?shù),否則為合數(shù)。

設(shè)待測(cè)數(shù)為n,取一個(gè)比n小的正整數(shù)a,設(shè)n-1=d*2^r。若n是素?cái)?shù),則要么a^d mod n = 1,要么存在一個(gè)i,滿足0≤i<r且a^(d*2^i )mod n = -1

經(jīng)過獨(dú)立的t輪Miller-Rabin算法將一個(gè)合數(shù)誤判為素?cái)?shù)的可能性不大于 (1/4)t,(正確實(shí)現(xiàn)的算法不會(huì)誤判素?cái)?shù)為合 數(shù)),這個(gè)誤判概率在基于Fermat定理的算法中是最好的。一輪Miller-Rabin算法的最壞情況時(shí)間復(fù)雜度為 (1+O(1))log2(n)( 以模n乘法為基本操作)。如果以單精度乘法操作作為時(shí)間復(fù)雜度的衡量,則一輪優(yōu)化的Miller-Rabin算法的最 壞情況時(shí)間復(fù)雜度為O(log32 (n) 。從時(shí)間復(fù)雜度來看Miller- Rabin算法的性能是很好的。在實(shí)際應(yīng)用中,Miller-Rabin 算 法的實(shí)際執(zhí)行速度也很快。

大家可以多次調(diào)用該函數(shù),使得錯(cuò)誤率降低。

#include

#include

#include

bool witness(__int64 a,__int64 n)

{

__int64 t,d,x;

d=1;

int i=ceil(log(n-1.0)/log(2.0)) - 1;

for(;i>=0;i--)

{

x=d; d=(d*d)%n;

if(d==1 && x!=1 && x!=n-1) return true;

if( ((n-1) & (1< 0)

d=(d*a)%n;

}

return d==1? false : true;

}

bool miller_rabin(__int64 n)

{

if(n==2) return true;

if(n==1 || ((n&1)==0)) return false;

for(int i=0;i<50;i++){

__int64 a=rand()*(n-2)/RAND_MAX +1;

if(witness(a, n)) return false;

}

return true;

}

int main()

{

int n,cnt;

__int64 a;

while(scanf("%d",&n)!=EOF)

{

cnt=0;

while(n--)

{

scanf("%I64d",&a);

if(miller_rabin(a))

cnt++;

}

printf("%d\n",cnt);

}

return 0;

}

篩法:篩法有3種時(shí)間復(fù)雜度,詳細(xì)說應(yīng)該有四種,最后一種貌似是打表……

1.O(N*根號(hào)N)

2.O(NlogN)

3.O(N)

第一種方法:很明顯的暴力啊……循環(huán)+判斷

第二種方法:這是比較常用的一種篩法:埃氏篩(俗稱垃圾篩),根本思想很簡(jiǎn)單:我們從1往N搜,假如我們遇到了一個(gè)沒有被標(biāo)記為不是素?cái)?shù)的數(shù),那么我們把它的倍數(shù)(>1)都標(biāo)記為非素?cái)?shù)……

for(int i=2;i<=1000000;i++)

if(!FP[i])

{

PL[++e]=i;

for(long long j=(long long)i*i;j<=1000000;j+=i) FP[j]=1;

}

第三種方法:線性篩,這個(gè)還是根據(jù)代碼來解釋吧……

第一行:應(yīng)該沒必要解釋吧

第二行:從1到N枚舉

第三行:同埃氏篩

第四行:枚舉素?cái)?shù)

第五行:如果乘上i大于n了,那么后面也肯定大于n,so break……

第六行:把prime[j]的i倍標(biāo)記為不是素?cái)?shù)

第七行:這個(gè)是代碼的核心句,如果沒有這句,那么它的時(shí)間復(fù)雜度與埃氏篩一樣,但是我們來看一看12,它是在什么時(shí)候被枚舉到的?第6次循環(huán),也就是說,我們這次如果不加這條語(yǔ)句,那么有寫情況是算重復(fù)了,那么這條魚句就可以保證它不會(huì)重復(fù)。

1. 任何一個(gè)合數(shù)都可以表示成一個(gè)質(zhì)數(shù)和一個(gè)數(shù)的乘積

2. 假設(shè)A是一個(gè)合數(shù),且A = x * y,這里x也是一個(gè)合數(shù),那么有:一個(gè)合數(shù)(x)與一個(gè)質(zhì)數(shù)(y)的乘積可以表示成一個(gè)更大的合數(shù)(Z)與一個(gè)更小的質(zhì)數(shù)(a)的乘積

例如: 如果i = 8; 那么由于i%2 == 0; 因此對(duì)于i=8就只需要檢查primes[1]=2即可,因?yàn)閷?duì)于大于primes[1]的質(zhì)數(shù),像3,有:8*3 = 2*4*3 = 12*2

也就是說24(8*3=24)并不需要在8時(shí)檢查,在12時(shí)才檢查

總結(jié)

以上是生活随笔為你收集整理的java 素数 五行_【数论】素数的判定与筛法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 综合色亚洲 | 婷婷综合另类小说色区 | 国产在线h | 亚洲一区在线免费 | 国产精品九九九 | 亚洲石原莉奈一区二区在线观看 | 男女激情四射网站 | 国产一卡二卡三卡四卡 | 理论片琪琪午夜电影 | 在线观看视频99 | 国产午夜亚洲精品午夜鲁丝片 | 奇米影视999| 国产精品午夜福利视频234区 | 手机在线一区 | av综合导航 | 老司机一区二区 | 快播日韩 | 国产男男gay体育生白袜 | 日韩少妇 | 99热都是精品 | 海角社区id | 少妇免费毛片久久久久久久久 | 亚洲福利视频网站 | 美女天天干 | 欧美13p| 中文字幕第一页在线播放 | 天天夜夜操| 久久久久久久福利 | 一区二区成人在线观看 | 国产毛片基地 | 国产精品久久久久久妇女6080 | 91看片淫黄大片 | 久久久久久久久久久电影 | 欧美日韩综合一区二区三区 | 美女自拍偷拍 | 国产精品久久久久久久久岛 | 狠狠的色 | 中文字幕第一页在线播放 | 亚洲破处视频 | h狠狠躁死你h高h | 中国白嫩丰满人妻videos | 日韩精品人妻一区二区三区免费 | 国产亚洲精久久久久久无码苍井空 | 69成人免费视频 | 女人18毛片水真多 | 成年视频在线 | 亚洲美女视频一区 | 色伊人影院| 久草视频中文在线 | 国产一区二区三区色淫影院 | 天天操免费视频 | 国产三级成人 | 日韩欧美字幕 | 国产内射合集颜射 | 8mav在线| 99cao| 日韩最新视频 | 精品久久久无码中文字幕边打电话 | 一本色道久久88亚洲精品综合 | 亚洲国产精品一区二区久久hs | 蜜臀久久99精品久久久久宅男 | 成人深夜电影 | com国产 | 91精品国产闺蜜国产在线闺蜜 | 男女羞羞动态图 | 日本中文字幕二区 | 99视频在线观看视频 | 欧美久久久一区二区三区 | 日韩乱码人妻无码系列中文字幕 | 老司机在线精品视频 | 日b视频免费观看 | 欧洲精品久久 | 日韩在线网 | 国产欧美专区 | av免费大片 | 久久久久国产精品午夜一区 | 曰本三级日本三级日本三级 | 国产娇小hdxxxx乱 | 婷婷综合网 | 丰满少妇熟乱xxxxx视频 | 黄色在线观看免费视频 | 波多野结衣福利视频 | 日本爽爽| 欧美成人精品一区二区男人小说 | 国产吞精囗交免费视频 | 黄色一级片. | 久久久精品美女 | 嫩草视频在线 | 欧美久久久久久久久久久 | 日韩成人在线观看 | 成品短视频泡芙 | 色网站在线看 | 精品国产96亚洲一区二区三区 | 你懂的在线视频网站 | 成人午夜视频在线观看 | www.五月激情 | 男女精品视频 | 免费看的一级片 | 青少年xxxxx性开放hg |