staticint n, g;staticint[] a =newint[101];staticboolean[] f =newboolean[10000];staticintgcd(int a,int b){if(b ==0)return a;returngcd(b, a % b);}publicstaticvoidmain(String[] args){
Scanner sc =newScanner(System.in);
n = sc.nextInt();
f[0]=true;for(int i =1; i <= n;++i){
a[i]= sc.nextInt();if(i ==1)
g = a[i];// 初始化最大公约数else
g =gcd(a[i], g);// 完全背包的递推 j<10000-a[i]很关键for(int j =0; j <10000- a[i];++j){if(f[j])
f[j + a[i]]=true;}}if(g !=1){//凑不出来的数有无限多个,表示所给出的所有数不是互质的//如果连个数是互质的则凑不出的数应该有有限个
System.out.println("INF");
System.out.println("g="+g);return;//提前结束程序}int ans =0;// 统计个数for(int i =0; i <10000;++i){if(!f[i]){
ans++;}}
System.out.println("ans="+ans+" "+"g="+g);}