模板
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const int HashMod = 191981;
long long a, b, p;
struct HashTable {
struct Line {int u, v, next;} e[100000];
int h[HashMod], cnt;
void add(int u, int v, int w) {e[++ cnt] = (Line){w, v, h[u]}; h[u] = cnt;}
void clear() {memset(h, 0, sizeof(h)); cnt = 0;}
void insert(int x, int i) {
int k = x % HashMod;
add(k, i, x);
}
int query(int x) {
for(int i = h[x % HashMod]; i; i = e[i].next)
if(e[i].u == x) return e[i].v;
return -1;
}
} hs;
long long gcd (long long a, long long b) {
return !b ? a : gcd(b, a % b);
}
long long exgcd (long long a, long long b, long long &x, long long &y) {
if (!b) {
x = 1;
y = 0;
return a;
}
long long d = exgcd(b, a % b, x, y), z;
z = x;
x = y;
y = z - a / b * y;
return d;
}
long long inv (long long a, long long b) {
long long x, y;
exgcd(a, b, x, y);
return (x % b + b) % b;
}
long long BSGS (long long a, long long b, long long p) {
long long s = sqrt(p) + 1, r = 1, sr = 1;
hs.clear();
for (int i = 0; i < s; i ++) {
hs.insert(r * b % p, i);
r = r * a % p;
}
sr = r;
for (int i = 1; i <= s; i ++) {
int q = hs.query(sr);
if (q != -1) return s * i - q;
sr = sr * r % p;
}
return -1;
}
long long exBSGS (long long x, long long y, long long p) {
if (y == 1 || p == 1) return 0;
long long g = gcd(x, p), k = 0, nx = 1, res;
while (g > 1) {
if (y % g) return -1;
k ++;
y /= g;
p /= g;
nx = nx * (x / g) % p;
if (nx == y) return k;
g = gcd(x, p);
}
res = BSGS(x, y * inv(nx, p) % p, p);
if (res == -1) return -1;
else return res + k;
}
int main () {
scanf("%lld%lld%lld", &a, &p, &b);
while (a || p || b) {
a %= p;
b %= p;
long long res = exBSGS(a, b, p);
if (res == -1) printf("No Solution\n");
else printf("%lld\n", res);
scanf("%lld%lld%lld", &a, &p, &b);
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探