首页 > 代码库 > 高精度快速幂(Java版)
高精度快速幂(Java版)
1 import java.io.*; 2 import java.math.*; 3 import java.util.*; 4 import java.text.*; 5 6 public class Main { 7 public static void main(String[] args) { 8 Scanner cin = new Scanner(System.in); 9 BigInteger a, b, m, ans;10 while (cin.hasNext()) {11 ans = new BigInteger("1");12 a = cin.nextBigInteger();13 b = cin.nextBigInteger();14 m = cin.nextBigInteger();15 a = a.mod(m);16 while (b.compareTo(new BigInteger("0")) > 0) {17 if (b.mod(BigInteger.valueOf(2)).compareTo(BigInteger.ONE) == 0) // if(n%2==1)18 ans = ans.multiply(a).mod(m); // sq=(sq*p)%m;19 a = a.multiply(a).mod(m); // p=(p*p)%m;20 b = b.divide(BigInteger.valueOf(2));21 }22 System.out.println(ans);23 }24 }25 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。