COJ 1223 JAVA入门训练modpow

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

你可能感兴趣的:(COJ 1223 JAVA入门训练modpow)