1. paizaラーニングトップ
  2. レベルアップ問題集
  3. ユークリッドの互除法メニュー応用編(言語選択)
  4. 問題一覧 Objective-C編
  5. 蛇腹折り

ユークリッドの互除法メニュー応用編のサムネイル
蛇腹折り (paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

友達の誕生日を祝うため paiza くんはびっくり箱を作ることにしました。
びっくり箱から紙が飛び出すしかけを作りたいと思った paiza くんは、長さが l_1(cm), ..., l_N(cm) の N 枚の細い紙をこの順につなげて 1 枚の細い紙にし、蛇腹折りにして箱の中に入れることにしました。
紙が飛び出すときの見た目を良くしたい paiza くんは、蛇腹折りの間隔を次のルールを満たすように決めることにしました。

・全ての紙のつなぎ目が蛇腹折りの折り目に重なる
・つなげた後の紙の端が蛇腹折りの折り目に重なる
・折り目の間隔(cm)は整数である

このルールを守ることができる蛇腹折りの折り目の間隔のうち最大の長さを求めてください。
例として、図の通り長さが 4(cm), 2(cm), 8(cm) の 3 枚の紙が与えられた場合は蛇腹折りの間隔が 2(cm) のとき、ルールを満たす最大の長さになります。
間隔を 3(cm) にするとルールを満たさなくなってしまいます。
また、1(cm) にした場合はルールを満たしますが最大の長さではありません。

入力される値

N
l_1
...
l_N


・1 行目で、与えられる整数の個数 N が与えられます。
・続く N 行では、整数 l_i (1 ≦ i ≦ N) が先頭から順に与えられます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

・ルールを満たすような蛇腹折りの間隔のうち、最大の長さを答えてください。
・また、出力の末尾には改行を入れてください。

条件

・1 ≦ N ≦ 100
・1 ≦ l_i ≦ 100,000 (1 ≦ i ≦ N)

入力例1

1
66507

出力例1

66507

入力例2

3
4
8
12

出力例2

4

問題一覧へ戻る

ページの先頭へ戻る