Max Subset GCD

2 secs 1024 MB
idat_50me's icon idat_50me

問題文

長さ NN の数列 A=(A1,A2,...,AN)A = (A_1, A_2, ...\, , A_N) が与えられます。 また、数列 AA の空でない部分列を TT とします。

ここで、TT に対するスコア f(T)f(T) を以下のように定義します。

  • TT の長さが mm であるとき、f(T)=gcd(T1,T2,...,Tm)×mf(T) = \gcd(T_1, T_2, ...\, , T_m) \times m

考えられる TT2N12^N-1 通りありますが、そのうち f(T)f(T) の最大値を求めてください。

制約

  • 1N1051 \leq N \leq 10^5
  • 1Ai1051 \leq A_i \leq 10^5
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN
A1    ANA_1\ \ \ldots\ \ A_N

出力

f(T)f(T) の最大値を出力せよ。

サンプル

サンプル1

入力
3
4 6 3
出力
6
  • T=(4)T = (4) のとき,f(T)=gcd(4)×1=4f(T) = \gcd(4) \times 1 = 4
  • T=(6)T = (6) のとき,f(T)=gcd(6)×1=6f(T) = \gcd(6) \times 1 = 6
  • T=(3)T = (3) のとき,f(T)=gcd(3)×1=3f(T) = \gcd(3) \times 1 = 3
  • T=(4,6)T = (4,6) のとき,f(T)=gcd(4,6)×2=4f(T) = \gcd(4,6) \times 2 = 4
  • T=(4,3)T = (4,3) のとき,f(T)=gcd(4,3)×2=2f(T) = \gcd(4,3) \times 2 = 2
  • T=(6,3)T = (6,3) のとき,f(T)=gcd(6,3)×2=6f(T) = \gcd(6,3) \times 2 = 6
  • T=(4,6,3)T = (4,6,3) のとき,f(T)=gcd(4,6,3)×3=3f(T) = \gcd(4,6,3) \times 3 = 3

以上より,66 が正解です.

サンプル2

入力
7
12 6 4 7 8 6 16
出力
18

Submit


Go (1.21)