本来想水题呐结果被水题给水了,救命
这有啥问题啊,为啥就爆了输出负数 真的烦死了
input:156431 154941233 467107951
output:156431^154941233 mod 467107951=216052475
myoutput:156431^154941233 mod 467107951=-395010744
#include <bits/stdc++.h>
#define ll long long
#define setp setprecision
#define mem(a, m) memset(a, m, sizeof(a));
using namespace std;
ll a, b, p;
ll qpow(ll a, ll b)
{
if(b == 0) return 1;
ll t=qpow(a, b/2);
if(b%2 == 0) return (t*t)%p;
else return (t*t*a)%p;
}
int main()
{
ios::sync_with_stdio(false);
cin >> a >> b >> p;
cout << a << "^" << b << " mod " << p << "=" << qpow(a, b);
return 0;
}