【AtCoder】ABC266解説(Python)

ABC266 B – Modulo Number

問題

問題文の要約は以下の通りです。

問題の要約

\(-10^{18} \le N \le 10^{18}\) を満たす整数 \(N\) に対して、\(N – x\) が 998244353 の倍数となるような、\(0 \le x < 998244353\) を満たす整数 \(x\) を求めよ。

制約

・\(-10^{18} \le N \le 10^{18}\)

入力

\(N\)

出力

答えを出力せよ。

解法

余りを考える。

解説

\(N – x\)が 998244353 の倍数となるためには、\(N\) を998244353で割った余りを \(x\) とすればよい。

なぜならば、
\(N =p×998244353 + x\) (\(p\) は998244353で割ったときの商、\(x\) は余り)
とすれば、
\(N – x = p×998244353\)
となり、998244353の倍数になるからです。

余りを求めるには% を用いることができます。

解答

print(int(input())%998244353)
1 2
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!