[1]趣味 [2] 問題文(含コード&リンク):
 どう実装してもよいので比の連立方程式が与えられた時に
 それを満たす最小の自然数の組を求めるプログラムを作れ。
 答えがない場合は「no answer」と表示する

 わかりにくいかもしれないので、問題文らしくしてみると
 同じサイズで空でない配列a,b,c,dを考え、iを添え字とする
 a[i],b[i]の値はある集合Xの要素xjの添え字jを表す
 a[i]:b[i]=c[i]:d[i](つまり、b[i]*c[i]=a[i]*d[i])の関係式を与えられた時
 全ての関係式を満たす最小の自然数xjの組e[i]を返せ
 (この問題の形式に従う必要は無い)

 例1 a={1,2,3,4},b={2,3,4,5},c={10,3,2,7},d={3,5,5,12}の時
  x1:x2=10:3
  x2:x3=3:5
  x3:x4=2:5
  x4:x5=7:12
  この解となる組の集合うち、全てが自然数で最小のものであるe={140,42,70,175,300}(={x1,x2,x3,x4})を出力する
 例2 a={2,3,1,4},b={1,2,3,2},c={5,3,4,6},d={6,2,5,3}
  x2:x1=5:6
  x3:x2=3:2
  x1:x3=4:5
  x4:x2=6:3
  このときe={12:10:15:20}(={x1,x2,x3,x4})を出力する
 例3 a={1,1,2} b={2,3,3} c={1,1,1} d={2,3,1}の時これを満たす自然数はないため「no answer」と表示する
[3] 環境 WinXP,VC8.0(or gcc 3.4.4 with cygwin),C++、Cどちらでも可
[4] 期限: なし
[5] その他の制限:標準以外のライブラリはなし(STLはOK,Boostはだめ)
特に「どうやってループを回すか」がわからない
例1みたいな直列につながった例なら何とか解ける気がするが
例2みたいになるとどうやって解いて良いのかわからずつまづいた
よろしくお願いします