たとえば, 55 という整数を考えると, これは 1 から 10までの連続した整数の和になる ことはよく知られている. しかし同時に, 55 は 9 から 13 の和でもあり, またさらに 27 から 28 までの和にもなっている.
55 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 55 = 9 + 10 + 11 + 12 + 13 55 = 27 + 28
このように, 与えられた整数 n が, 連続する(2個以上の)整数の和として何通りに 表されるかを求めてみよう.
前の問題同様, 段階的に考えてみる.
(出力結果の「+ ... +」の部分は, 本当に数を連続して出力しても良いが, めんどうだから文字通りの「+ ... +」でいいことにしよう)i? 1 j? 4 1 + ... + 4 = 10
j? 4 1 + ... + 4 = 10 2 + ... + 4 = 9 3 + ... + 4 = 7
i, j を独立に変化させるやりかたは, 第7回でやったかけ算九九の表を思い出そう.max_j? 4 1 + ... + 2 = 3 1 + ... + 3 = 6 2 + ... + 3 = 5 1 + ... + 4 = 10 2 + ... + 4 = 9 3 + ... + 4 = 7
n? 55 1 + ... + 10 = 55 9 + ... + 13 = 55 27 + ... + 28 = 55