atcoder#AGC039C. [AGC039C] Division by Two with Something
[AGC039C] Division by Two with Something
配点 : 点
問題文
整数 が与えられます。 以上 以下のすべての整数 に対し、 に以下の操作を繰り返すことによって次に に戻るまでの操作回数 (戻らない場合 ) を足し合わせた値を で割ったあまりを求めてください。
- 現在の整数が奇数なら、 を引いて で割る。そうでなければ、 で割って を足す。
制約
- は 進表記でちょうど 桁与えられる ( が 桁より少ない場合、leading zero をつけて与えられる。)
- 入力はすべて整数である
入力
入力は以下の形式で標準入力から与えられる。
出力
以上 以下のすべての整数に対し、 操作を繰り返すことによってもとの整数に戻るまでの操作回数 (戻らない場合 ) を足し合わせた値を で割ったあまりを出力せよ。
3
111
40
例えば、 のとき、操作によって整数は と順に変化します。したがって、 のときの操作回数は です。
6
110101
616
30
001110011011011101010111011100
549320998