• <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)  編輯 收藏 引用
            日韩欧美亚洲综合久久影院Ds| 亚洲精品国产自在久久| 久久国产欧美日韩精品免费| 亚洲精品成人久久久| 欧美一区二区三区久久综| 国产精品久久久久久福利漫画| 香港aa三级久久三级| 亚洲七七久久精品中文国产| 国产69精品久久久久9999| 亚洲精品乱码久久久久久| 亚洲国产婷婷香蕉久久久久久| 精品999久久久久久中文字幕| 97香蕉久久夜色精品国产| 久久久噜噜噜久久中文字幕色伊伊| 久久久久亚洲AV无码专区体验| 久久精品三级视频| 国产精品99久久精品爆乳| 国产精品久久久久乳精品爆 | 国产亚洲综合久久系列| 久久亚洲AV无码精品色午夜麻豆| 久久精品亚洲乱码伦伦中文| 狠狠色丁香婷婷久久综合不卡| 久久偷看各类wc女厕嘘嘘| 久久精品亚洲精品国产色婷| 久久久久无码精品国产| 国产精品久久久久一区二区三区| 久久精品成人一区二区三区| 久久强奷乱码老熟女| 久久人妻无码中文字幕| 久久国产精品久久久| 国产精品久久网| 无码人妻久久久一区二区三区| 亚洲一区二区三区日本久久九| 久久香综合精品久久伊人| 国产精品美女久久久免费| 久久精品国产亚洲av水果派| 亚洲精品tv久久久久久久久久| a高清免费毛片久久| 性色欲网站人妻丰满中文久久不卡| 青青草国产精品久久久久| 久久人人爽人人爽人人av东京热 |