题解 | #快速幂#

快速幂

https://www.nowcoder.com/practice/defdedf4fe984c6c91eefa6b00d5f4f0

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StreamTokenizer st = new StreamTokenizer(br);
        st.nextToken();
        int q = (int)st.nval;
        while (q > 0) {
            st.nextToken();
            long a = (long)st.nval;
            st.nextToken();
            long b = (long)st.nval;
            st.nextToken();
            long p = (long)st.nval;
            long base = 1;
            while (b > 0) {
                if (b % 2 == 1) {//将单数提出来单独算 ,以便后面分治
                    base = base * a;
                    base %= p;
                }
                a = a * a % p;
                b /= 2;
            }
            System.out.println(base % p);
            q--;
        }
    }
}

全部评论

相关推荐

01-11 08:47
门头沟学院 Java
choumoduji...:读研的目的就是为了以最快的速度和最低的要求完成“学校”规定的毕业标准,而不是所谓课题组的要求
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务