蓝桥杯3522 互质数的个数 | 数论

题目传送门


首先根据a^b得出需要使用欧拉函数φ,根据欧拉函数的性质:
φ ( a b ) = a b − 1 ∗ φ ( a ) φ ( n ) = n ∗ ( 1 − 1 / p 1 ) ∗ ( 1 − 1 / p 2 ) ∗ . . . ∗ ( 1 − 1 / p k ) ,其中 p i 为 n 的质因数 φ(a^b)=a^{b-1}*φ(a)\\ φ(n)=n*(1-1/p_1)*(1-1/p_2)*...*(1-1/p_k),其中p_i为n的质因数 φ(ab)=ab−1∗φ(a)φ(n)=n∗(1−1/p1)∗(1−1/p2)∗...∗(1−1/pk),其中pi为n的质因数

于是使用python的快速幂函数即可得到结果。


python 复制代码
mod = 998244353
a, b = map(int, input().split())


# 欧拉函数模版
def euler(x: int) -> int:
    phi = x
    for i in range(2, int(pow(x, 0.5)) + 1):
        if x % i != 0:
            continue
        while x % i == 0:
            x = x // i
        phi = phi * (i-1) // i
    if x > 1:
        phi = phi * (x-1) // x
    return phi


ans = (euler(a) * (pow(a, b-1, mod))) % mod
print(ans)

END✨

相关推荐
Iridescent112122 分钟前
Iridescent:Day48
python
BBB努力学习程序设计23 分钟前
Python迭代器与生成器:优雅的惰性计算艺术
python
BBB努力学习程序设计23 分钟前
Python描述符协议:属性访问的底层魔法
python
qq_3176203127 分钟前
第00章-Python学习大纲
python·python入门
Hello.Reader32 分钟前
Table & SQL API 配置从“默认可用”到“针对场景调优”的一套方法论
数据库·python·sql
BoBoZz1942 分钟前
VTKWithNumpy使用 NumPy 数组来创建3D体渲染所需要的数据
python·vtk·图形渲染·图形处理
无才顽石44 分钟前
什么是数学
算法·数理象
Coder_Boy_1 小时前
Java调用Python实现FAISS向量操作(两种方式完整实战)
java·python·faiss
CoderCodingNo1 小时前
【GESP】C++五级真题(数论, 贪心思想考点) luogu-B4070 [GESP202412 五级] 奇妙数字
开发语言·c++·算法
木昆子1 小时前
AI Agent案例实践:三种智能体开发模式详解之一(手写代码)
后端·python