互质数的个数(快速幂+欧拉函数)


题目描述


给定 a, b,求 1 ≤ x < a^b 中有多少个 x 与a^b 互质。由于答案可能很大,你只需要输出答案对 998244353 取模的结果。


输入格式


输入一行包含两个整数分别表示 a, b,用一个空格分隔。


输出格式


输出一行包含一个整数表示答案。


样例输入


2 5


样例输出


16

提示

对于 30% 的评测用例,a^b ≤ 106 ;

对于 70% 的评测用例,a ≤ 10^6,b ≤ 10^9 ;

对于所有评测用例,1 ≤ a ≤ 10^9,1 ≤ b ≤ 10^18 。

思路:

为了解决这个问题,我们可以利用快速幂和欧拉函数来计算与a^b互质的的个数。

 快速幂(Fast Power Algorithm):

快速幂是一种用于快速计算幂运算的算法,特别适用于大数的幂运算。其基本原理是利用指数b

你可能感兴趣的:(算法,java)