#CF1043F. 使最大公因数为一

使最大公因数为一

使最大公因数为一

  • 时间限制:3 秒
  • 内存限制:256 MiB

题目描述

给定一个含 nn 个正整数的序列。你可以选择任意非空下标子集,得分为所选数的最大公因数。

求为了使得分为 11,至少需要选择多少个数;若无法做到,输出 −1-1。

输入格式

第一行一个整数 nn。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

输出最少选择个数,无法使最大公因数为 11 时输出 −1-1。

样例输入 1

3
10 6 15

样例输出 1

3

样例输入 2

3
2 4 6

样例输出 2

-1

样例输入 3

7
30 60 21 42 70 15 30

样例输出 3

3

数据范围

对于所有数据,1≤n≤3000001\le n\le300000,1≤ai≤3000001\le a_i\le300000。

子任务编号 分值 特殊限制
1 30 n≤22n\le22
2 n≤5000n\le5000 且 ai≤5000a_i\le5000
3 40 无特殊限制