数学

有关数论的详细的定理证明我就先不写了,否则要写一年。

  • 快速幂

快速幂会把幂次方运算从O(n)复杂度降低到O(logn)。

假设求a的b次方,可以把b进行二进制分解,分解成若干个2的 i 次方相加。
例如: ->
注意取模

ll Fast_pow(ll a,ll b,ll p) {
    ll r=1,base=a;
    while(b) {
        if(b&1) r=(r%p*base%p)%p;
        base=(base%p*base%p)%p;
        b>>=1;
    }
    return r%p;
}

  • 素数(质数)

因子只有1和其本身的数。

  • 判断素数O()

bool Prime(int x) {
    if(x<=1) return false;
    for(int i=2;i<=sqrt(x);i++) 
    if(!(x%i)) return false;
    return true;
}

你可能感兴趣的:(数学)