どう書く?org : 除算・余剰を使わずに閏年

original page : http://ja.doukaku.org/124/

ある西暦が閏年か否かを判定するプログラムを書いてください。
ただし、除算・余剰を求める演算子、組み込み関数、ライブラリ関数等を使用してはいけません。 また、閏年は以下のように定義されています。 1.
西暦年が4で割り切れる年は閏年 2. ただし、西暦年が100で割り切れる年は平年 3. ただし、西暦年が400で割り切れる年は閏年

#7110

original page : http://ja.doukaku.org/comment/7110/

Dateクラスをそのまま使うというのは思いつきませんでした。コロンブスの卵すぎる・・・!

一応正攻法も載せておきますね。

is.leap.year1 <- function(y){
    !is.na(ISOdate(y,2,29))
}

is.leap.year2 <- function(y){
    y %in% union(setdiff(seq(0,y,4), seq(0,y,100)), seq(0,y,400))
}