蓝桥杯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✨

相关推荐
神明9317 分钟前
数据库模型设计实战:如何导出数据库完整数据字典_规范化流程
jvm·数据库·python
老纪9 分钟前
SQL中如何查找包含关键字的行:FULLTEXT全文索引检索
jvm·数据库·python
茉莉玫瑰花茶10 分钟前
LangGraph 入门教程:构建 AI 工作流 [ 案例二 ]
开发语言·人工智能·python
yaoxin52112310 分钟前
403. Java 文件操作基础 - 写入二进制文件
java·开发语言·python
dfdfadffa11 分钟前
c++怎么利用std--filesystem--path处理包含多个扩展名的文件名【详解】
jvm·数据库·python
宵时待雨12 分钟前
优选算法专题6:模拟
数据结构·c++·算法·leetcode·职场和发展
Liangwei Lin18 分钟前
LeetCode 35. 搜索插入位置
数据结构·算法·leetcode
数智工坊19 分钟前
【经典RL算法】Q-Learning:强化学习的里程碑——从理论到收敛证明的完整解析
论文阅读·人工智能·深度学习·算法·transformer
叼烟扛炮21 分钟前
C++ 知识点19 匿名对象
开发语言·c++·算法·匿名对象
阿正呀23 分钟前
c++如何动态追加JSON数组到已有文件_nlohmann局部修改【详解】
jvm·数据库·python