计算后才能取模;不能先自乘在取模。过程中不能取模,对结果取模
顺便复习了一下运算符优先级,
return 1 会re;只能return 0
快速幂运算
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll x, p, m;
int main() {
scanf("%d%d%d", &x, &p, &m);
ll ans = 1;
ll a = x;
ll b = p;
while (p > 0) {
if (p % 2 == 1) {
ans *= x;
ans %= m;
}
x = x * x % m;
p /= 2;
}
ans %= m;
printf("%d^%d mod %d=%d", a, b, m, ans);
}