對於一個數n,如果想要判斷它是否為素數,常規的方法為試除法。即,讓n依次除以2到sqrt(n)以內的整數。如果有出現除盡的情況,則為合數。


    該方法的時間複雜度為o(sqrt(n))在麵對n為長整型的時候有可能超出時間要求。因此普遍采用米勒拉賓算法進行素性判定。


    在此之前介紹一種偽素數判定方法——小費馬定理。


    但沒有米勒拉賓素性測試快。


    米勒拉賓素性測試是:


    判斷一個數p是否為素數


    p首先得為大於等於2的正整數才有可能為素數,


    首先判奇偶,若為偶數隻有2為素數,


    若為奇數(這裏可以考慮去掉 3甚至5的倍數),則先求出d。


    對於每一個底a,讓d不斷乘以2直到為(p-1)\/2,


    在此過程中(包括原本的d與d=(p-1)\/2時的情況),


    設t為 a的d次方模p的餘數,


    (1)當t=-1時跳出,聲明p有可能為素數


    (2)當t=1時,若d為奇數,跳出聲明p有可能為素數,否則跳出聲明p必為合數


    (3)當d=(p-1)\/2時跳出,聲明p必為合數。

章節目錄

閱讀記錄

數學心所有內容均來自互聯網,繁體小說網隻為原作者蔡澤禹的小說進行宣傳。歡迎各位書友支持蔡澤禹並收藏數學心最新章節