1. 程式人生 > >U48565 金坷垃

U48565 金坷垃

肥料摻了金坷垃,一袋能頂兩袋撒!

先給出題人點32個贊!

看到這種輸入一個數輸出一個數的題目就想打表,但是發現\(k\)辣麼大!

所以找規律咯!

不難發現,只有1和2的倍數是滿足條件的。

所以題目等價於求\(2^{k-1} \bmod 123456789\)

所以直接long long+ksm搞掉。

程式碼:

#include<cstdio>
#define ll long long
ll k;
ll pow_mod(ll x, ll y, ll z)
{
    ll ans = 1;
    while(y)
    {
        if(y & 1) ans = ans * x % z;
        x = x * x % z;
        y >>= 1;
    }
    return ans % z;
}
int main()
{
    scanf("%lld", &k);
    printf("%lld\n", pow_mod(2, k - 1, 123456789ll));
    return 0;
}