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

给定 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;
}
相关推荐
闲看云起1 小时前
Leetcode-day4:从「移动零」到「盛最多水的容器」
数据结构·算法·leetcode·职场和发展
拿我格子衫来1 小时前
搭建公司产品wiki的开源框架选型,注重介绍wikijs框架
程序人生·信息可视化·职场和发展
天真小巫3 小时前
2025.12.30总结
职场和发展
007php0073 小时前
Git 操作偏门指南:常用和隐藏命令与问题解决
java·git·面试·职场和发展·golang·jenkins·php
十八岁讨厌编程4 小时前
【算法训练营 · 补充】LeetCode Hot100(下)
算法·leetcode·职场和发展
元亓亓亓6 小时前
LeetCode热题100--64. 最小路径和--中等
算法·leetcode·职场和发展
hqyjzsb6 小时前
2026年AI证书选择攻略:当“平台绑定”与“能力通用”冲突,如何破局?
大数据·c语言·人工智能·信息可视化·职场和发展·excel·学习方法
有一个好名字7 小时前
力扣-递增的三元子序列
算法·leetcode·职场和发展
_OP_CHEN8 小时前
【算法基础篇】(三十九)数论之从质数判定到高效筛法:质数相关核心技能全解析
c++·算法·蓝桥杯·埃氏筛法·acm/icpc·筛质数·欧拉筛法
007php0078 小时前
通过程序对接地图api展示旅游数据列表
java·数据库·面试·职场和发展·golang·php·旅游