はまやんはまやんはまやん

hamayanhamayan's blog

2 の 128 乗と M [yukicoder 976]

https://yukicoder.me/problems/no/976

解説

https://yukicoder.me/submissions/424685

mod m上の計算では、ab % m = (a % m) * (b % m)が成り立つ。
つまり、分配法則が成り立つため、Mで割ったあまりを計算しながら、2を128回かけていけばいい。

ll M;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> M;

    ll ans = 1;
    rep(i, 0, 128) ans = (ans * 2) % M;
    cout << ans << endl;
}