1109: 除数

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:267 Solved:34

Description

你有一个正整数序列:\( A = (a_1, a_2, \ldots, a_N) \)。

你可以选择并执行以下操作中的任意一个任意次数(包括零次):

- 选择一个整数 \( i \)(其中 \( 1 \leq i \leq N \) 且 \( a_i \) 是 2 的倍数),并将 \( a_i \) 替换为 \( \frac{a_i}{2} \)。
- 选择一个整数 \( i \)(其中 \( 1 \leq i \leq N \) 且 \( a_i \) 是 3 的倍数),并将 \( a_i \) 替换为 \( \frac{a_i}{3} \)。

你的目标是使序列 \( A \) 满足 \( a_1 = a_2 = \ldots = a_N \)。

找出你需要执行操作的最小总次数来实现目标。如果没有办法实现目标,则输出 -1。

Input

- \( 2 \leq N \leq 1000 \)
- \( 1 \leq a_i \leq 10^9 \)

- 所有输入的值都是整数。


输入格式如下:


N
a_1 a_2 ... a_N


其中:
- 第一行是整数 \( N \),表示序列的长度。
- 第二行是 \( N \) 个正整数 \( a_1, a_2, \ldots, a_N \)。

你的任务是根据上述操作要求,通过最少的操作次数使所有 \( a_i \) 相等,如果无法实现,则输出 -1。

Output

输出答案

Sample Input Copy

3
1 4 3

Sample Output Copy

3

HINT

这里有一种方法可以通过三次操作达到目标,这是所需的最少操作次数。

- 选择整数 \( i = 2 \),满足 \( a_i \) 是 2 的倍数,将 \( a_2 \) 替换为 \( \frac{a_2}{2} \)。此时 \( A \) 变为 \( (1, 2, 3) \)。
- 选择整数 \( i = 2 \),满足 \( a_i \) 是 2 的倍数,将 \( a_2 \) 替换为 \( \frac{a_2}{2} \)。此时 \( A \) 变为 \( (1, 1, 3) \)。
- 选择整数 \( i = 3 \),满足 \( a_i \) 是 3 的倍数,将 \( a_3 \) 替换为 \( \frac{a_3}{3} \)。此时 \( A \) 变为 \( (1, 1, 1) \)。