• <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)

            隨筆檔案

            文章檔案

            搜索

            •  

            積分與排名

            • 積分 - 179060
            • 排名 - 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 閱讀(208) 評論(0)  編輯 收藏 引用
            亚洲综合日韩久久成人AV| 精品无码久久久久久久久久| 一本久道久久综合狠狠躁AV| 久久久精品国产| 男女久久久国产一区二区三区| .精品久久久麻豆国产精品| 丁香五月综合久久激情| 波多野结衣久久一区二区| 久久人爽人人爽人人片AV | 伊人久久免费视频| 亚洲国产日韩欧美综合久久| 国内精品伊人久久久久777| 久久青草国产手机看片福利盒子| 久久国产成人午夜AV影院| 伊人久久大香线蕉av不卡| 99久久精品免费看国产| 人妻无码αv中文字幕久久琪琪布| 国产精品久久午夜夜伦鲁鲁| 伊人热热久久原色播放www| 久久99国产精品久久99| 亚洲色大成网站www久久九| 久久精品免费网站网| 久久久久久久综合日本亚洲| 久久强奷乱码老熟女网站| 久久久久一级精品亚洲国产成人综合AV区| 欧美va久久久噜噜噜久久| 久久午夜无码鲁丝片秋霞 | 久久久亚洲欧洲日产国码二区 | 久久久久99精品成人片欧美| 久久国产免费直播| 久久国产精品99久久久久久老狼| 亚洲中文字幕无码一久久区| 亚洲乱码日产精品a级毛片久久| 亚洲国产二区三区久久| 91视频国产91久久久| 久久久久久毛片免费播放| 99久久精品免费看国产一区二区三区| 久久婷婷午色综合夜啪| 久久久久se色偷偷亚洲精品av| 久久亚洲AV无码精品色午夜| 久久天天躁夜夜躁狠狠躁2022|