COJ 1223 JAVA入门训练modpow

来源:互联网 发布:cad高达数据 编辑:程序博客网 时间:2024/06/07 05:55

Super A^B mod C

Time Limit: 1000 ms     Memory Limit: 65536 KB
Total Submit: 8     Accepted: 7

Description
数论课上,老师给DreamFox安排了一项任务,用编程实现A的B次方模C。这个当然难不了ACMer。于是DreamFox回去后就开始用代码实现了。并且超额完成了任务,实现了当b是大数的情况下的快速算法。

Input
三个整数,a,b,c。(0<=a,c<2^31,0 < =b<10^100000)

Output
一个整数,a^b mod c的结果。

Sample Input
5 100000000000000 12830603

Sample Output
5418958

刚开始我用的是pow函数,但是因为pow函数的参数是int型的,所以看了下,原来类库中直接有modpow这个函数了,哎呀,方便啊……
import java.io.*;  import java.math.*;  import java.util.*;  public class Main {      public static void main(String[] args) {          Scanner cin=new Scanner (new BufferedInputStream(System.in));            BigInteger a=cin.nextBigInteger();         BigInteger b=cin.nextBigInteger();        BigInteger c=cin.nextBigInteger();        a=a.modPow(b, c);        System.out.println(a);      }  }