#include <bits/stdc++.h> using namespace std; long long powM(long long a, long long b, long long mode) { long long sum = 1; a = a % mode; while (b > 0) { if (b % 2 == 1) //判断是否是奇数,是奇数的话将多出来的数事先乘如sum sum = (sum * a) % mode; b /= 2; a = (a * a) % mode;// 不断的两两合并再取模,减小a和b的规模 } return sum; } int main () { long long n, m, k, x; cin >> n >> m >> k >> x; cout << (m * powM(10, k, n) + x) % n << endl; }
#include <bits/stdc++.h> using namespace std; typedef long long ll; const long long MODE = 100000007; long long powM(long long a, long long b, long long mode) { long long sum = 1; a %= mode; while (b) { if (b & 1) //判断是否是奇数,是奇数的话将多出来的数事先乘如sum sum = (sum * a) % mode; b >>= 1; a = (a * a) % mode;// 不断的两两合并再取模,减小a和b的规模 } return sum; } int main () { int N; cin >> N; while (N--) { ll flag = 1; ll n, k; cin >> n >> k; if (n & 1) flag = - 1; cout << (powM(k - 1, n, MODE) % MODE + (flag * (k - 1)) % MODE) % MODE << endl; } }
#include <bits/stdc++.h> using namespace std; typedef long long ll; long long powM(long long a, long long b, long long mode) { long long sum = 1; a %= mode; while (b) { if (b & 1) //判断是否是奇数,是奇数的话将多出来的数事先乘如sum sum = (sum * a) % mode; b >>= 1; a = (a * a) % mode;// 不断的两两合并再取模,减小a和b的规模 } return sum; } int main () { ll a, b, c, d, e; cin >> a >> b >> c >> d >> e; ll f = powM(a, c * d, e) % e; ll g = powM(b, c * d, e) % e; cout << (f * g) % e << endl; }