编程题
### 问题描述
给出一个长度为 $n$ 的整数数组 $A$,分别为 $A_1,A_2,...,A_n$。
小蓝可以对数组进行操作,每次操作选定一个下标 $i$,再确定一个整数 $k$,令 $A_i=A_i\times k$。
小蓝想要知道,最少需要操作几次,才能让数组 $A$ 变成**完美的数组**。
**完美的数组**定义: 对于任意 $i\ge2$,$gcd(A_{i-1},A_i)=1$。
$gcd(a,b)$ 是 $a$ 和 $b$ 的最大公约数。
如果无论怎么操作都无法让数组变成**完美的数组**,输出 $-1$。
### 输入格式
第一行输入一个整数 $n$。
第二行输入 $n$ 个整数表示 $A$ 数组。
### 输出格式
输出一行,包含一个整数,表示最小的操作次数。
### 样例输入
```text
2
1 2
```
### 样例输出
```text
0
```
### 评测数据规模
保证对于所有测试数据有:
$2\le n\le 10^5,1\le a_i\le10^9$。