費馬小定理


二、費馬小定理

費馬小定理是數論中的一個定理:假如a是一個整數,p是一個質數,那么

是p的倍數(即(a p-a)%p==0  -->  a p%p=a%p),可以表示為

如果a不是p的倍數,這個定理也可以寫成(同余式寫法)

同余式

如果兩個正整數 a和 b之差能被 n整除,那么我們就說 a和 b對模n同余,記作:

證明

任意取一個質數,比如13。考慮從1到12的一系列整數1,2,3,4,5,6,7,8,9,10,11,12,給這些數都乘上一個與13互質的數,比如3,得3,6,9,12,15,18,21,24,27,30,33,36。對於模13來說,這些數同余於3,6,9,12,2,5,8,11,1,4,7,10。這些余數實際上就是原來的1,2,3,4,5,6,7,8,9,10,11,12,只是順序不同而已。
把1,2,3,…,12統統乘起來,乘積就是12的階乘12!。把3,6,9,…,36也統統乘起來,並且提出公因子3,乘積就是312×12!。對於模13來說,這兩個乘積都同余於1,2,3,…,12系列,盡管順序不是一一對應,即312x12!≡12!mod 13。兩邊同時除以12!得312≡1 mod 13。如果用p代替13,用x代替3,就得到費馬小定理xp-1≡1 mod p。

應用

  • 計算2^100除以13的余數
2^100除以13的余數
  • 證明對於任意整數a而言

    恆為2730的倍數。13減1為12,12的正因數有1, 2, 3, 4, 6, 12,分別加1,為2, 3, 4, 5, 7, 13,其中2, 3, 5, 7, 13為質數,
    根據定理,

    為2的倍數、為3的倍數、為5的倍數、為7的倍數、為13的倍數,即235713=2730的倍數。
  • long long f(long a,long b,long n)  //定義函數,求a的b次方對n取模
    {
        int t,y;
        t=1;
        y=a;
        while(b!=0)
        {
            if((b&1)==1)
            t=t*y%n;
            y=y*y%n;
            b=b>>1;
        }
        return t;
    }

     

  •  

     



鏈接: https://www.jianshu.com/p/e3df7e5d9c38
來源:簡書

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM