题意简述
给定 n n n和 n n n个数,问:最少选出多少个数能使得它们的 g c d gcd gcd是 1 1 1?
数据
输入
第一行是一个 n ( n < = 3 e 5 ) n(n<=3e5) n(n<=3e5)。
接下来一行是 n n n个数(每个数 < = 3 e 5 <=3e5 <=3e5)。
输出
最少选出多少个数使得 g c d gcd gcd是 1 1 1。如果选不出来输出 − 1 -1 −1。
样例
输入
3
10 6 15
输出
3
输入
3
2 4 6
输出
-1
输入
7
30 60 21 42 70 15 30
输出
3
思路
我们会发现,前 7 7 7个质数相乘,即 2 ∗ 3 ∗ 5 ∗ 7 ∗ 11 ∗ 13 ∗ 17 = 510510 2*3*5*7*11*13*17=510510 2∗3∗5∗7∗11∗13∗17=510510,超过了 3 e 5 3e5 3e5。所以,如果有答案,肯定在 7 7 7个以内。因为最多的情况,也就是 7 7 7个的情况,是
{ 510510 / 2 , 510510 / 3 , 510510 / 5 , 510510 / 7 , 510510 / 11 , 510510 / 13 , 510510 / 17 } \{510510/2,510510/3,510510/5,510510/7,510510/11,510510/13,510510/17\} {
510510/2,51051