同じ長さの棒を出来るだけたくさん作るには、 ①まず入力値(input)の合計(sum)を求める。 ②sumの約数で、かつinputの最大値(max)以上のもの(=length)を、小さい順から順番に調べていく。 ③すべてのinputを使用して長さlengthの棒ができれば、lengthを出力して終了。これだけでできることはすぐに分かる。 たとえば、前回の入力例 4 3 2 1なら、合計値が10になる。約数は、1,2,5,10このうち入力の最大値4よりも大きいのは5,10だから、最初はたして5になるような組み合わせを見つければよい。 もし入力が5 3 2 1なら合計値が11(素数)なので11がそのまま答えになる。 実際にコードを書いてみると、 001 int input[64]; 002 int length,n; 003 004 main() 005 { 006 int a,b,sum;