AtCoder Beginner Contest 253 D問題 FizzBuzz Sum Hard
問題
提出解答
問題の概要
以上 以下の整数のうち, の倍数でも の倍数でもないような整数全ての総和を求めよ.
制約
解法
集合 を
- : 以上 以下の整数全体の集合
- : 以上 以下の整数のうち, の倍数であるもの全体の集合
- : 以上 以下の整数のうち, の倍数であるもの全体の集合
とする.
すると, 包除原理から,
である.
ここで, 整数 に対して, が の倍数かつ の倍数であることと, が の倍数であることが同値になる. そして, 任意の整数は の倍数であることを利用すると, 以上 以下の整数における の倍数の総和を と書くことにすると,
であるから,
となる.
最後に, の求め方を考える. 以上 以下の整数は 以上 以下の整数を用いて, と表せ, 逆に, このように表せる整数は全て 以上 以下の の倍数である.
よって, とすると,
である.
であることに注意すると, を求めるために 時間かかり, それ以外では定数時間で処理できる. よって, 時間で求めることができた.