欧拉降幂(JAVA)蓝桥杯乘积幂次

这个题可以使用欧拉降幂,1000000007是质数,所以欧拉函数值为1000000006.

java 复制代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
     public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        //输入
        long n = scanner.nextLong();
        int m = scanner.nextInt();

        //记录F(m) % 1000000007的欧拉函数
        long t = 1;
        for (int i = 2; i < m + 1; i++) {
            t = (t * i) % 1000000006;
        }

        //快速乘法幂
        long y = t % 1000000006;
        long ans = 1;
        while (y > 0){
            if((y & 1) == 1){
                ans = (ans * n) % 1000000007;
            }
            y>>=1;
            n = (n * n) % 1000000007;
        }

        System.out.println(ans);
        
    }
}
相关推荐
CodeCraft Studio6 分钟前
借助Aspose.HTML控件,在 Python 中将 HTML 转换为 Markdown
开发语言·python·html·markdown·aspose·html转markdown·asposel.html
QQ_4376643147 分钟前
C++11 右值引用 Lambda 表达式
java·开发语言·c++
永卿0017 分钟前
设计模式-迭代器模式
java·设计模式·迭代器模式
aramae7 分钟前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法
誰能久伴不乏15 分钟前
Linux如何执行系统调用及高效执行系统调用:深入浅出的解析
java·服务器·前端
封奚泽优30 分钟前
使用Python实现单词记忆软件
开发语言·python·random·qpushbutton·qtwidgets·qtcore·qtgui
慕y27437 分钟前
Java学习第七十二部分——Zookeeper
java·学习·java-zookeeper
midsummer_woo41 分钟前
基于spring boot的医院挂号就诊系统(源码+论文)
java·spring boot·后端
_Aaron___1 小时前
面向对象的三大特性---多态
java
Kiri霧1 小时前
IntelliJ IDEA
java·ide·kotlin·intellij-idea