No.316 もっと刺激的なFizzBuzzをください
Note
この問題はAdvent Calendar Contest Advent Calendar 2015の9日目の問題として作られました。問題文
yumechiくんはプログラミング初心者なので, FizzBuzzの問題を解いている.
しかし,普通のFizzBuzzの問題は簡単すぎるので,もう少し発展的な問題を解いてみたいと思った.
普通のFizzBuzzでは,3の倍数の時に"Fizz",5の倍数の時に"Buzz"が出力されるが,yumechiくんは3の倍数または5の倍数であるものをカウントすることを考える.
例えば,1以上100以下の範囲内で3の倍数または5の倍数の数は47個ある.
yumechiくんはこれを発展させ,1以上N以下の範囲で3つの整数a, b, cのどれかの倍数になる数字の個数(aの倍数またはbの倍数またはcの倍数になる数字の個数)をカウントしたいと考えている.
あなたは負けず嫌いなので,yumechiくんからこの話を聞いた際に,yumechiくんよりも早くプログラムを完成させたいと思い,すぐにコーディングに取り掛かった.
入力
N a b c
1行目に範囲の終点Nが,2行目に3つの整数a, b, cが与えられる.
$ 1 \leq N \leq 10^{9} $
$ 1 \leq a \leq b \leq c \leq 10^{4} $
出力
1以上N以下の範囲内でa, b, cのどれかの倍数になる数字の個数を出力してください. 最後に改行してください。
サンプル
サンプル1
入力
100 2 3 5
出力
74
1以上100以下の範囲内には,2または3または5の倍数となる数字の個数が合計で74個あります.
サンプル2
入力
100 2 5 6
出力
60
サンプル3
入力
346346 25 575 2525
出力
13853
サンプル4
入力
83359640 3304 9805 9945
出力
42104
(自分でデバッグしていたら,たまたまつらそうなパターンを見つけたので加えておきます(事故))
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。