专栏文章

题解:P12540 [XJTUPC 2025] 离散对数

P12540题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@mip981wh
此快照首次捕获于
2025/12/03 08:13
3 个月前
此快照最后确认于
2025/12/03 08:13
3 个月前
查看原文

题解:P12540 [XJTUPC 2025] 离散对数

题目描述

给定正整数 aa, cc, pp,保证 pp素数,求 bb 使得: abbc(modp)a^b \equiv b^c \pmod{p}

前置芝士:费马小定理

先说结论:直接输出 (p1)2(p-1)^2 (我可以说是瞪眼法吗qaq)\textcolor{white}{(我可以说是瞪眼法吗qaq)}

证明

由费马小定理知,如果 pp 是一个质数,而整数 aa 不是 pp 的倍数,则有: ap11(modp)a^{p-1} \equiv 1 \pmod{p}
这意味着 a 的幂次在模 p 下以 p-1 为周期。
因此,对于任意指数 bb 有:
ababmod(p1)(modp)a^b \equiv a^{b \bmod (p-1)} \pmod{p}
我们令 b=(p1)2b = (p-1)^2 则有:(真的是瞪眼法qwq) \textcolor{white}{(真的是瞪眼法qwq)}
b0(modp1)b \equiv 0 \pmod{p-1}
于是:
aba01(modp)a^b \equiv a^0 \equiv 1 \pmod{p}
又因为:
b=(p1)2=p22×p+1b = (p-1)^2 = p^2 - 2 \times p + 1
p^2 \equiv 0 \pmod{p} \\ 2 \times p \equiv 0 \pmod{p} \\ 1 \equiv 1 \pmod{p} \\ \end{cases}$$ 所以: $$ b^c \equiv b \equiv 1 \pmod{p} $$ 显然,当 $b=p-1$ 时 $$ a^b \equiv b^c \pmod{p} $$ 证毕 ## code $\textcolor{white}{(不会真有人不会写吧)}$ ```cpp #include<iostream> using namespace std; long long p;//记得开long long! int main(){ cin>>p>>p>>p;//连a,c都不用读 cout<<(p-1)*(p-1); } ``` [record](https://www.luogu.com.cn/record/217774051)

评论

1 条评论,欢迎与作者交流。

正在加载评论...