你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。 示例 1: 输入: a = 2, b = [3] 输出: 8 示例 2: 输入: a = 2, b = [1,0] 输出: 1024 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/super-pow 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 leetcode题解 class Solution { public int superPow(int a, int[] b) { int c=ol(1337); int sum=0; for(int i=0;i<b.length;i++) sum=(sum*10+b[i])%c; sum+=c; return q((long)a,sum,1337); } private int q(long x,int y,int M) { long res=1; while(y>0) { if(y%2>0) res=res%M*x%M; x=x%M*x%M; y/=2; } return (int)res; } private int ol(int x) { int res=x; for(int i=2;i*i<=x;i++) { if(x%i==0) { res=res-res/i; while(x%i==0) x/=i; } } if(x>1) res=res-res/x; return res; } }