求助
查看原帖
求助
778011
DreamLand_zcb楼主2023/1/31 18:02

本来想水题呐结果被水题给水了,救命

这有啥问题啊,为啥就爆了输出负数 真的烦死了

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;
}
2023/1/31 18:02
加载中...