while line = gets
    a,b =line.split.map{|item| item.to_i}
    printf("%d %d\n", a.gcd(b), a.lcm(b))
end

#または

#loop do 
    #line = gets 
    #break unless line
    #a,b = line.split.map(&:to_i)

    
#while 繰り返し続ける条件 do
    #繰り返したい処理
#end
#(doは省略可能)

#while文で入力ファイルを行ごとに取得している
#getsは標準入力もしくは第一引数の内容を，文字列として一行ずつ得ることができる
#ここではgetsの内容をlineに入れて，lineがnilになるまでwhileで繰り返しています．

#while line = gets で.「lineがnilになるまで、getsする」つまり、
#「全部の行の入力を得るまで繰り返す」.ということになる.これが「繰り返し続ける条件」

