[ARC002A] うるう年
题意翻译
输入年份Y(1000<=Y<=2999) 然后判断闰年……
是闰年输出“YES”,不是输出“NO”,最后空行。
题目描述
[problemUrl]: https://atcoder.jp/contests/arc002/tasks/arc002_1
高橋君は忘れっぽい性格なので、うるう年は $ 2 $ 月 $ 29 $ 日の存在を毎回忘れてしまいます。
そこで、自動でうるう年かどうかをコンピュータに教えてもらえるようにしたいと思います。
入力として与えられた年がうるう年かそうでないかを判断しなさい。
ただし、うるう年は以下の規則で決定します。
- 規則 $ 1 $:$ 4 $ で割り切れる年はうるう年である。
- 規則 $ 2 $:$ 100 $ で割り切れる年をうるう年ではない。
- 規則 $ 3 $:$ 400 $ で割り切れる年はうるう年である。
- 規則 $ 4 $:規則 $ 1 $〜$ 3 $ のいずれも満たさない場合は,うるう年ではありません。
ただし、規則 $ 1 $ 〜 $ 3 $ の内に複数満たすものがあれば後の規則(数字の大きな規則)が優先されます。 例えば、$ 2000 $ 年は規則 $ 3 $ を満たすのでうるう年です。
$ 2100 $ 年は規則 $ 2 $ を満たしますが、規則 $ 3 $ を満たさないのでうるう年ではありません。
入力は以下の形式で標準入力から与えられる。 > $ Y $
- 年を表す整数 $ Y $($ 1000\ ≦\ Y\ ≦\ 2999 $) が $ 1 $ 行で与えられる。
与えられた年がうるう年ならば `YES`、そうでなければ `NO` を標準出力に $ 1 $ 行で出力せよ。
なお、最後には改行を出力せよ。 ```
<pre class="prettyprint linenums">
1001
```
```
<pre class="prettyprint linenums">
NO
```
```
<pre class="prettyprint linenums">
2012
```
```
<pre class="prettyprint linenums">
YES
```
- $ 2012 $ を $ 4 $ で割ると $ 503 $ になり割り切れるので規則 $ 1 $ を満たします。
- しかし、$ 100 $では割り切れないので規則 $ 2 $ は満たさず、うるう年になります(うるう年ではありません、は間違いですので訂正させて頂きました)。
```
<pre class="prettyprint linenums">
2100
```
```
<pre class="prettyprint linenums">
NO
```
- $ 2100 $ は $ 4 $ で割り切れるので、規則 $ 1 $ を満たします。
- また、$ 100 $ で割ると $ 21 $になり割り切れるので、規則 $ 2 $ を満たします。
- しかし、$ 400 $ では割り切れず規則 $ 3 $ を満たさないので、うるう年ではありません。
```
<pre class="prettyprint linenums">
2000
```
```
<pre class="prettyprint linenums">
YES
```
- $ 2000 $ は $ 4 $ で割り切れるので、規則 $ 1 $ を満たします。
- また、$ 100 $ でも $ 400 $ でも割り切れるので規則 $ 2 $ も $ 3 $ も満たします。
- よって、$ 2000 $ 年はうるう年になります。