ABC032 A問題:高橋君と青木君の好きな数

問題. 高橋君と青木君の好きな数

正の整数  a, b, n が与えられる. n 以上の  a b の公倍数で最小の数を求めよ.

制約 1 \le a, b \le 100,  1 \le n \le 20,000

解法

 n a b の公約数になるまでインクリメントする.このとき,求める数は  n + a b - 1 以下となるので,インクリメントする数も高々  a b - 1 回となる.
求める数が  n + a b - 1 以下となるのは  a b による剰余を考えると分かる.整数  x a b の公約数となるための必要十分条件 x a b による剰余が 0 となることである. n \mod a b の値は 0 以上  a b よりも小さいので,剰余が 0 となるために加える最小の値は高々  a b - 1 である.

計算時間 O(a b)

すぐに証明できなかったけどA問題だからインクリメントすればいいだろうと実装してしまったので反省.
剰余を考えると見通しがよくなるのでメモ.