【题目描述】
给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?
【输入】
第一行是一个正整数n。1 ≤ n ≤ 10。
第二行是n个不大于10000的正整数。
【输出】
一个正整数,即最少需要的组数。
【输入样例】
6
14 20 33 117 143 175
【输出样例】
3
【AC代码】
#include <bits/stdc++.h>
using namespace std;
int n,t,a[11][15],ans=1;
int main()
{
cin>>n;
cin>>a[1][1];
a[1][0]=1;
n--;
while(n--)
{
cin>>t;
bool ok=false;
for(int i=1; i<=ans; i++)
{
bool fnd=false;
for(int j=1; j<=a[i][0]; j++)
{
if(__gcd(a[i][j],t)!=1)
{
fnd=true;
break;
}
}
if(!fnd)
{
a[i][0]++;
a[i][a[i][0]]=t;
ok=true;
break;
}
}
if(!ok)
{
ans++;
a[ans][1]=t;
a[ans][0]=1;
}
}
cout<<ans<<endl;
return 0;
}