func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int powermod(long long int B, long long int P, long long int M) {     long long int r = 1;     if (B >= M) B %= M;     while (P > 0) {       if ((P & 1) == 1) {         r *= B;         if (r >= M) r %= M;       }       P >>= 1;       B *= B;       if (B >= M) B %= M;     }     return r;   }   long long int modinv(long long int B, long long int M) {     return powermod(B, M - 2, M);   }   int main() {     long long int MOD = 1000000007LL;     long long int A, B, N, x, res = 1;     cin >> A >> B >> N >> x;     if (A == 1) {       res = x + B * (N % MOD);     } else {       long long int An = powermod(A, N, MOD);       res = An * x;       long long int tmp = B * (An - 1) % MOD;       tmp = tmp * modinv(A - 1, MOD) % MOD;       res += tmp;     }     res %= MOD;     cout << res << endl;     return 0;   }   