小苯有一个长度为 的数组 。 他想要使得所有 的最大公因子是一个素数。即: 是一个素数。他可以对数组进行任意次操作。 具体的:每次操作,他会选择 两个下标,同时执行: 。 请问他是否有可能在任意次操作内将数组变成符合要求的,如果可以,请输出所有可能的最大公因数。 注意,这里要保证 在操作后仍然是正数,即不能选择 。
输入描述:
输入包含两行。第一行一个正整数 表示数组长度。第二行 个正整数 表示这个数组。


输出描述:
输入包含一行或两行。如果可以输出“YES”,否则输出“NO”(不含双引号)。如果答案为“YES”,则第二行按照升序输出所有可行的数组 。
示例1

输入

4
1 3 5 9

输出

YES
3

说明

可以选择一次 i = 1, j = 3,这样一来数组变成:[3, 3, 3, 9] ,gcd = 3
可以证明只有 3 这一个答案。
示例2

输入

4
2 2 2 2

输出

YES
2
示例3

输入

5
2 4 5 6 8

输出

NO
示例4

输入

8
1324 4544 910 3087 14450 1010 2346 5836

输出

YES
3 17 73
加载中...