废话不多说,我们先来看题目
题目
描述
给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?
输入
第一行是一个正整数n。1 <= n <= 10。
第二行是n个不大于10000的正整数。
输出
一个正整数,即最少需要的组数。
样例输入
6 14 20 33 117 143 175
样例输出
3
讲解
变量定义
int a[15],b[15][15],ans=11,s,n;
其中,n为输入正整数的个数,a为输入数组,ans为答案(要赋值为极大值),s为搜索时的组数,b记录分组情况,b[i][0]代表第i组数的个数,b[i][j]代表第i组里的第j个数
1.主函数main
输入数据,调用dfs(递归函数,后面会有讲解)并输出数据
代码:
int main()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
dfs(1);
print