-
不开 long long 见祖宗,还有不要用 unsigned long long,因为减法可能会出现负数。这时候应该 (a%mod-b %mod+mod)%mod。
-
不要把m、n看反。
-
不要顺手将指数取模。
-
请手写pow。
还有什么想补充的请在评论区留言。
#include <iostream>
#define int long long
using namespace std;
const int mod = 100003;
int qpow(int a, int b) {
int ans = 1;
while (b) {
if (b & 1) ans = a * ans % mod;
a = a * a % mod;
b >>= 1;
}
return ans;
}
signed main() {
int m, n;
cin >> m >> n;
cout << ( qpow(m, n) % mod - m * qpow(m-1, n-1) % mod + mod ) % mod;
}