快速幂

作者: endless_e48c | 来源:发表于2020-02-16 13:51 被阅读0次
    #include <cstdio>
    typedef long long ll;
    const int MOD = 100003;
    ll n, m;
    ll quick_pow(ll a, ll b) {//非递归写法 
        if (b == 0) {
            return 1;
        }
        ll ans = 1;
        while (b > 0) {
            if (b & 1) {
                ans = ans * a % MOD;
            }
            a = a * a % MOD;
            b >>= 1;
        }
        return ans;
    }
    ll quick_pow1(ll a, ll b) {//递归写法 
        if (b == 0) {
            return 1;
        } 
        ll ans = quick_pow1(a, b / 2) % MOD;
        ans = ans * ans % MOD;
        if (b & 1) {
            return ans * a % MOD;
        } else {
            return ans;
        }
    }
    int main() {
        scanf("%lld %lld", &m, &n);
        printf("%lld", quick_pow1(m, n)); 
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:快速幂

          本文链接:https://www.haomeiwen.com/subject/wevpfhtx.html