快速幂取模

   long long myPow(long long x, int n) {
        long long ans = 1;
        while(n){
            if(n % 2 != 0){
                ans *= x;
                ans %= modN;
            }
            x *= x;
            x %= modN;
            n /= 2;
        }
        return ans;
    }

如上求x的n次方,并对结果求余modN

比如:3的11次方等于3 * (3^2)^5 等于 3 * (3^2) * ((3^2)^2)^2 如此递推 

 

关于题目:https://leetcode-cn.com/problems/maximize-number-of-nice-divisors/

posted @ 2021-04-08 00:18  LCAC  阅读(55)  评论(0)    收藏  举报