• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 70  文章 - 160  trackbacks - 0

            公告:
            知識共享許可協議
            本博客采用知識共享署名 2.5 中國大陸許可協議進行許可。本博客版權歸作者所有,歡迎轉載,但未經作者同意不得隨機刪除文章任何內容,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 具體操作方式可參考此處。如您有任何疑問或者授權方面的協商,請給我留言。

            常用鏈接

            留言簿(8)

            隨筆檔案

            文章檔案

            搜索

            •  

            積分與排名

            • 積分 - 179896
            • 排名 - 147

            最新評論

            閱讀排行榜

            評論排行榜


            原文傳送門:

             http://www.wutianqi.com/?p=1253


             

            偽素數:如果n是一個正整數,如果存在和n互素的正整數a滿足a^n-1≡1(mod n),我們說n是基于a的偽素數。如果一個數是偽素數,它幾乎肯定是素數。(即下面的費馬小定理)
            費馬小定理是數論中的一個重要定理,其內容為: 假如p是質數,且(a,p)=1,那么 a^(p-1) ≡1(mod p) 假如p是質數,且a,p互質,那么 a的(p-1)次方除以p的余數恒等于1。
            更多關于費馬小定理請參閱:
            http://baike.baidu.com/view/263807.htm?fr=ala0_1


            這是Miller Rabbin測試素數的代碼模版:
            #include<stdio.h>
            #include
            <stdlib.h>
            #include
            <time.h>
            #define maxTest 100
            __int64 Random(__int64 n)
            {
                
            return (__int64)((double)rand()/RAND_MAX*n+0.5);
            }
             
            __int64 Modular_Exp(__int64 a, __int64 b, __int64 n) 
            // a^b mod n 
            {
                __int64 ans;
                
            if(b == 0)
                       
            return 1;
                
            if(b == 1
                
            return a%n;
                ans 
            = Modular_Exp(a, b/2, n);
                ans 
            = ans*ans%n;
                
            if(b%2)
                ans 
            = ans*a%n;
            }
             
            bool Miller_Rabbin(__int64 n)
            {
                
            for(int i=1; i<=maxTest; i++)
                {
                   __int64 a 
            = Random(n-2)+1;
                   
            if(Modular_Exp(a, n-1, n) != 1
                 
            return false;
                }
                
            return true;
            }
            int main()
            {
             
                srand(time(NULL));
                __int64 n;
                
            while(scanf("%I64d"&n)==1)
                  
            if(Miller_Rabbin(n))
                    printf(
            "Primer\n\n");
                  
            else 
                  printf(
            "Not Prime\n\n");
                  
            return 0;
            }

            注:
            1.Modular_Exp函數詳細見:
            快速冪取模(點擊查看)
            2.這個算法是概率型算法,而不是確定型算法。不過多次運行后出錯概率很小,在實際應用中是可以信賴的。

            感謝rakerichard小牛的資料和劉汝佳老師的黑書。

            posted on 2010-09-08 14:28 Tanky Woo 閱讀(211) 評論(0)  編輯 收藏 引用
            香蕉久久夜色精品国产2020| 思思久久精品在热线热| 人妻精品久久久久中文字幕69| 狠狠色丁香久久婷婷综合_中 | 色妞色综合久久夜夜| 久久亚洲美女精品国产精品| 国产精品久久永久免费| 国产精品99久久精品爆乳| 人人狠狠综合久久亚洲| 中文无码久久精品| 精品久久久久久综合日本| 免费一级做a爰片久久毛片潮 | 久久99精品国产麻豆| 国产亚洲欧美成人久久片 | 精品99久久aaa一级毛片| 久久亚洲精品成人无码网站| 97久久精品人妻人人搡人人玩| 久久精品中文字幕有码| 久久综合久久自在自线精品自| 亚洲国产天堂久久综合网站| 久久久亚洲AV波多野结衣| 欧美精品一区二区精品久久 | 亚洲精品无码专区久久久| 久久精品国产免费| 亚洲午夜无码久久久久| 久久久久久国产精品无码下载| 久久国产精品99国产精| 久久久久久精品免费看SSS| 久久精品亚洲乱码伦伦中文| 久久精品国产亚洲麻豆| 色欲久久久天天天综合网精品| 欧美成a人片免费看久久| 欧美激情精品久久久久| 久久精品www人人爽人人| 久久人人添人人爽添人人片牛牛| 久久免费视频一区| 99久久精品费精品国产| 一级做a爰片久久毛片16| 亚洲国产精久久久久久久| 久久青草国产精品一区| 久久精品国产精品青草app|