AtCoder Beginner Contest 275 B問題 ABC-DEF
問題
提出解答
問題の概要
を で割った余りを求めよ.
制約
解法
普通に計算しようとする場合, オーバーフローが発生し, 正しく計算できない言語がある. C, C++ などはオーバーフローが発生する言語である. 一方で, Python はオーバーフローが発生しない言語であるから, そのまま計算できる *1 .
整数の余りについて, 整数 を で割った余りを と書くとき, 次のような性質がある.
このことから, 和の余りは余りの和の余りと等しく, 差, 積についても同様である.
よって, 積の余りを余りの積の積, 差の余りを余りの差の余りにおきかえて計算すればよい.
ただし, は保証されているが, とは限らない. これにより, 負の数の余りの計算が発生する可能性があり, 言語によっては余りが負になってしまう場合があるので, 注意が必要である.
*1:ただし, 計算時間が犠牲になる