【快速幂、欧拉函数】蓝桥杯第十四届---互质数的个数

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

输入格式

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

输出格式

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

样例输入

复制代码
2 5

样例输出

复制代码
16

提示

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

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

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

cpp 复制代码
#include<iostream>
using namespace std;
typedef long long LL;
const int mod=998244353;
LL quick_pow(LL a,LL b){
	LL res=1;
	while(b){
		if(b&1) res=res*a%mod;
		a=a*a%mod;
		b>>=1;
	}
	return res;
}
LL eu(LL n){
	LL res=n;
	for(LL i=2;i<=n/i;i++){
		if(n%i==0){
			res=res*(i-1)/i%mod;
			while(n%i==0) n/=i;
		}
	}
	if(n>1) res=res*(n-1)/n%mod;
	return res;
}
int main(){
	LL a,b;
	cin>>a>>b;
	LL n=quick_pow(a,b);
	cout<<eu(n)%mod<<endl;
	return 0;
}
相关推荐
小欣加油13 小时前
leetcode2574 左右元素和的差值
数据结构·c++·算法·leetcode·职场和发展
千寻girling14 小时前
一周没跑步了 ,今日跑步 5KM , 哑铃+健身 20min , 俯卧撑 30 个 ;
数据结构·c++·python·算法·leetcode·职场和发展·线性回归
8Qi820 小时前
LeetCode 300 & 674:最长递增子序列 vs 最长连续递增子序列
算法·leetcode·职场和发展·动态规划
8Qi821 小时前
LeetCode 188 & 123:股票买卖问题(限制交易次数)—— 联合题解
算法·leetcode·职场和发展·动态规划
我爱cope21 小时前
【Agent智能体22 | 构建AI工作流的技巧-延迟、成本优化】
人工智能·设计模式·语言模型·职场和发展
酉鬼女又兒1 天前
零基础入门计算机网络:MAC地址、IP地址与ARP协议全面解析(含考研真题详解)
网络·网络协议·tcp/ip·计算机网络·考研·macos·职场和发展
Felomeng1 天前
从旧博客出发,向新的世界走去
程序人生·职场和发展
想吃火锅10051 天前
【leetcode】3.无重复字符的最长字串js版
算法·leetcode·职场和发展
Raink老师1 天前
【AI面试临阵磨枪-100】Harness 与 MCP/A2A 协议、Skill 体系如何集成?
人工智能·面试·职场和发展
我爱cope1 天前
【Agent智能体21 | 构建AI工作流的技巧-优化组件的常用方法】
人工智能·设计模式·语言模型·职场和发展