编程题
### 问题描述
小辫子酱买了 $n$ 个珠子,她想要用它们穿成一个手串。每个珠子有一个强度值,并且这个强度值至多有两个质因子。在穿手串的过程中,相邻两个珠子的强度值会发生损失。假设两个珠子当前的强度值分别为 $w_1,w_2$,小辫子酱需要选择一个 $w_1,w_2$ 共同的因子 $d$ 且满足 $d > 1$,才能将这两个珠子拼接在一起。拼接完成后,这两个珠子的强度变为 $\frac{w_1}{d},\frac{w_2}{d}$。如果找不到这样的 $d$,那么这两个珠子无法拼接在一起。
小辫子酱想知道,是否存在一种方法可以将 $n$ 个珠子拼接成环。你可以以任意顺序来拼接珠子。
### 输入格式
第一行输入一个整数 $n \space (2 \leq n \leq 10^5)$,代表珠子个数。
第二行输入 $n$ 个整数 $w_i \space (1 \leq w_i \leq 10^6)$,代表每个珠子初始的强度值 $w$。保证 $w_i$ 至多有两个质因子。
### 输出格式
如果存在一种拼接方法可以将珠子拼接成环,输出 `YES`。否则,输出 `NO`。
### 样例输入
```
4
6 9 4 6
```
### 样例输出
```
YES
```
### 样例说明
一种合法的拼接顺序是 $6,9,6,4$。首先,选择 $d = 3$ 将 $6,9$ 拼接在一起,此时手串强度值为 $[\frac{6}{3},\frac{9}{3}] = [2,3]$。然后选择 $d = 3$ 将 $6$ 拼接在手串尾部,此时强度值为 $[2,\frac{3}{3},\frac{6}{3}] = [2,1,2]$。然后选择 $d = 2$ 将 $4$ 拼接在手串尾部,此时强度值为 $[2,1,\frac{2}{2},\frac{4}{2}] = [2,1,1,2]$。最后选择 $d = 2$,将手串的头部和尾部相连,强度值变为 $[\frac{2}{2},1,1,\frac{2}{2} ] = [1,1,1,1]$,可以完成拼接。