出力結果は平方数の小さいものから表示することとする. 入力が 2 つの平方数の和で表現できない場合, たとえば 6 の場合には, -1 を出力する.1 4
また, 答えが複数ある場合,たとえば 25 の場合には, 25 = 0 + 25 = 9 + 16 であるが, 一番小さい平方数を含む答えのみ表示することにする.つまり,25 の場合の答えは下記のとおり.-1
0 25
(ヒント) 与えられた数を「小さな平方数」で順に引き算していけば良い. たとえば 17 だったら, まず 0 の平方数 0 で引いたとき, 17 となるが,これは平方数ではないので答えではない. 次に 1 の平方 1 で引いたとき 16 となるが,16 は 4 の平方である. つまり 17 = 1 + 16 と, 2 つの平方の和で表せた.ここで,ある整数が「平方数かどうか」の判断が必要となってくるわけだが, 0 以上の整数を 0 から順に 2 乗してみて,同じ値となるかを調べれば良い. 他に良い方法があるかどうかは考えてみてほしい.