Luogu P5035 金坷垃 数学题,给出k,求第k个用自身减去除本身的一个因数,重复过程可以得到1的数 我:打表可知,满足的数必为$2^x$(确信 众:数学论证,请 我: 若有$b a$,且$a - b = 1$,可知$a = 2, b = 1$ 进一步,若$b a$,且$a - b = 2$,可知$a = 4, b = 2$ 运用数学归纳法得答案 $Q.E.D$(论 证 有 力
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <bits/stdc++.h> using namespace std;
long long fpow(long long x, long long y, long long z) { long long ans = 1; for (; y; y >>= 1) { if (y & 1) ans = ans * x % z; x = x * x % z; } return ans; }
int main() { long long k; cin >> k; cout << fpow(2LL, k - 1, 123456789LL) << endl; return 0; }
|