No.316 もっと刺激的なFizzBuzzをください

レベル : / 実行時間制限 : 1ケース 1.000秒 / メモリ制限 : 512 MB / 通常問題
タグ : / 解いたユーザー数 199
作問者 : yumechiyumechi

11 ProblemId : 891 / 出題時の順位表

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

(自分でデバッグしていたら,たまたまつらそうなパターンを見つけたので加えておきます(事故))

提出ページヘ