Я пытаюсь реализовать модульное возведение в степень, но не могу получить правильный ответ:
общедоступный статический BigInteger modPow (BigInteger b, BigInteger e, BigInteger m)
{ // Чтобы вычислить модульное возведение в степень и вернуть объект класса BigInteger
BigInteger x= new BigInteger("1"); //The default value of x
BigInteger power ;
power=b.mod(m);
String t =e.toString(2); //convert the power to string of binary
String reverse = new StringBuffer(t).reverse().toString();
for (int i=0;i<reverse.length();i++ ) { //this loop to go over the string char by char by reverse
if(reverse.charAt(i)=='1') { //the start of if statement when the char is 1
x=x.multiply(power);
x=x.mod(m);
power=power.multiply(power);
power=power.mod(m);
} //the end of if statement
}//the end of for loop
return x;
} //the end of the method modPow