题目描述
给定一个正整数序列 A=(a1,a2,ldots,aN)。你可以选择并执行以下操作任意次数(可能为零):
- 选择一个整数 i,使得 1leqileqN 并且 ai 是 2 的倍数,将 ai 替换为 fracai2。
- 选择一个整数 i,使得 1leqileqN 并且 ai 是 3 的倍数,将 ai 替换为 fracai3。
你的目标是使得 A 满足 a1=a2=ldots=aN。
找到达到目标所需执行操作的最少总次数。如果无法达到目标,则输出 -1
。
约束条件
- 2leqNleq1000
- 1leqaileq109
- 输入中的所有值都是整数。
输入
从标准输入读取输入数据,输入格式如下:
N
a1 a2 ldots aN
输出
输出答案。
样例输入 1
3
1 4 3
样例输出 1
3
以下是达到目标的一种方案,需要进行三次操作,这是最少次数。
- 选择整数 i=2,使得 ai 是 2 的倍数,将 a2 替换为 fraca22。A 变为 (1,2,3)。
- 选择整数 i=2,使得 ai 是 2 的倍数,将 a2 替换为 fraca22。A 变为 (1,1,3)。
- 选择整数 i=3,使得 ai 是 3 的倍数,将 a3 替换为 fraca33。A 变为 (1,1,1)。
样例输入 2
3
2 7 6
样例输出 2
-1
无法达到目标。
样例输入 3
6
1 1 1 1 1 1
样例输出 3
0