浅谈数论

$$OI中的数论知识$$

$$By;TYQ$$

gcd

\[gcd(i,j) = max \{ y | i \equiv 0 \; (mod y) , j \equiv 0 \; (mod y) \} \]

关于求gcd:

  • 暴力

    时间复杂度O(N)级别

  • 欧几里得算法

    利用定理\(gcd(i,j) = gcd(i,j-i)\;(i<j)\)

    这是显而易见的...

    然后我们也可以知道\(gcd(i,j) = gcd(j,i%j)\;(i<j)\)

    时间复杂度是log级的 , 是一种极为优秀的算法

    //demo_gcd
    int gcd(int x , int y){
        if(y==0)return x ;
        return gcd(y , x%y) ;
    }
    

ex_gcd

$$留坑以后填$$

posted @ 2018-11-02 22:49  tyqtyq~!  阅读(104)  评论(1编辑  收藏  举报