欧拉降幂(JAVA)蓝桥杯乘积幂次
这个题可以使用欧拉降幂,1000000007是质数,所以欧拉函数值为1000000006.
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);}
}