欧拉降幂(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);
        
    }
}
相关推荐
叽哥几秒前
Kotlin学习第 3 课:Kotlin 流程控制:掌握逻辑分支与循环的艺术
android·java·kotlin
杨杨杨大侠1 分钟前
第5章:实现Spring Boot集成
java·github·eventbus
华仔啊4 分钟前
工作5年没碰过分布式锁,是我太菜还是公司太稳?网友:太真实了!
java·后端
尚久龙8 分钟前
安卓学习 之 图片控件和图片按钮
android·java·学习·手机·android studio·安卓
摸鱼仙人~9 分钟前
深入理解 MyBatis-Plus 的 `BaseMapper`
java·开发语言·mybatis
杨杨杨大侠11 分钟前
第6章:高级特性与性能优化
java·github·eventbus
Dcs33 分钟前
代码评审还能更好!
java
ITKEY_35 分钟前
flutter日期选择国际化支持
开发语言·javascript·flutter
刃神太酷啦1 小时前
C++ 异常处理机制:从基础到实践的全面解析----《Hello C++ Wrold!》(20)--(C/C++)
java·c语言·开发语言·c++·qt·算法·leetcode
蓝倾9761 小时前
小红书获取用户作品列表API接口操作指南
java·服务器·前端·python·电商开放平台·开放api接口