大数快速幂modPow(x,d)
import java.math.*;
class Solution {
public int maxNiceDivisors(int primeFactors) {
// d
//9 4*5=20
// 3 3 3=27
// 2 2 3 2=24
//10 3 3 4=36
// 3 3 3 1=27
// 3 3 2 2 =36
//11 3 4 4=48
// 3 3 3 2=54
// 0 3的shang
//prime%3 1 3的shang1 *4
// 2 3的shang *2
if(primeFactors==1) return 1;
BigInteger maxx=new BigInteger("1000000007");
BigInteger x=BigInteger.valueOf(primeFactors);
//BigInteger yu=x.mod(new BigInteger("3"));
BigInteger shang=x.divide(new BigInteger("3"));
BigInteger three=new BigInteger("3");
if(primeFactors%3==0) return Integer.parseInt(three.modPow(shang,maxx).toString());
if(primeFactors%3==1)
return Integer.parseInt(three.modPow(shang.subtract(BigInteger.ONE),maxx).
multiply(new BigInteger("4")).mod(maxx).toString());
return Integer.parseInt(three.modPow(shang,maxx).multiply
(new BigInteger("2")).mod(maxx).toString());
}
}
该博客探讨了如何使用大数快速幂modPow方法处理数学问题,特别是当输入参数包含3的倍数时的特殊情况。通过Java实现,展示了如何计算大整数除以3的余数,并根据余数确定结果的位数。此算法对于高效计算和优化有重要意义。
313

被折叠的 条评论
为什么被折叠?



