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);
}
}