Problem:
うるう年

西暦 a 年から b 年までの間にあるすべてのうるう年を出力するプログラムを作成してください。

うるう年の条件は、次のとおりとします。ただし、0 < a ≤ b < 3,000 とします。与えられた期間にうるう年がない場合には "NA"と出力してください。

西暦年が 4 で割り切れる年であること。

ただし、100 で割り切れる年はうるう年としない。

しかし、400 で割り切れる年はうるう年である。

Input

複数のデータセットが与えられます。各データセットの形式は以下のとおりです：

a b

a, b がともに 0 のとき入力の終了とします。データセットの数は 50 を超えません。

Output

データセットごとに、西暦または NA を出力してください。

データセットの間に１つの空行を入れてください。

Sample Input

2001 2010
2005 2005
2001 2010
0 0

Output for the Sample Input

2004
2008

NA

2004
2008

Solution in Ruby (judge verdict: Accepted)

#encoding:utf-8 No.0093 2014.10.3
years = []
while true
  range = gets.chomp.split.map{|item|
    item = item.to_i
  }
  if range == [0,0]
    break
  end
  years.push range
end

answer =[]

years.length.times do |i|
  leap_year = []
  for n in years[i][0]..years[i][1]
    if (n%4 == 0 && n%100 != 0) || n%400 == 0
      leap_year.push n      
    end
  end
  if leap_year.length == 0
    leap_year.push "NA"
  end
  answer.push leap_year
end

answer.length.times do |i|
  puts answer[i]
  unless i == answer.length - 1
    puts
  end
end