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

相关推荐
Book思议-5 分钟前
【数据结构实战】栈的经典应用:后缀表达式求值 +中缀转后缀 ,原理 + 代码双通透
数据结构·算法··后缀表达式·后缀转中缀
炽烈小老头7 分钟前
【 每天学习一点算法 2026/03/30】跳跃游戏
学习·算法
zero15978 分钟前
Python 8天极速入门笔记(大模型工程师专用):第三篇-列表与字典(Python核心数据结构,大模型必备)
开发语言·python·ai编程
书到用时方恨少!12 分钟前
Python 零基础入门系列(十一):模块和包
开发语言·python
阿kun要赚马内21 分钟前
Python面向对象编程:封装性
开发语言·python
Yao.Li22 分钟前
PVN3D TensorRT 环境配置指南
人工智能·python·具身智能
wuweijianlove24 分钟前
算法性能预测的统计模型与参数敏感性分析的技术6
算法
Just right25 分钟前
重学算法 数组 LC27移除元素
数据结构·算法
郝学胜-神的一滴26 分钟前
巧解括号序列分解问题:栈思想的轻量实现
开发语言·数据结构·c++·算法·面试
zzwq.30 分钟前
Python面向对象编程(OOP)基础详解
python