/* -*- coding: utf-8 -*- * * 1161.cc: No.1161 Many Powers - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_C = 100000; /* typedef */ typedef long long ll; /* global variables */ int cbss[MAX_C + 1]; /* subroutines */ int powmod(int a, ll n, int mod) { // a^n % mod int pm = 1; while (n > 0) { if (n & 1) pm = (ll)pm * a % mod; a = (ll)a * a % mod; n >>= 1; } return pm; } /* main */ int main() { ll a, b; int c; scanf("%lld%lld%d", &a, &b, &c); cbss[0] = 0; for (int i = 0; i < c; i++) cbss[i + 1] = (cbss[i] + powmod(i, b, c)) % c; int sum = ((ll)cbss[c] * (a / c % c) % c + cbss[a % c + 1]) % c; printf("%d\n", sum); return 0; }