给定n个正整数,将它们分组,使得每组中的任意两个数互质(它们最大公约数为1)。按照以下算法可以得到最少的组数:
第一步:将第1个整数分到第1组;
第二步:尝试将第2个至第n个整数分到已有的分组中,若能分到已有的分组中,则分到第一个符合条件的组;若不能分到已有的组,则分到新生成的组中。
经过回溯算法,可以找到最小的分组数量。
例如对“70,99,25,54,11,100”这6个整数分组,具体分组情况如下表所示:
组别
|
第一组
|
||||||
位置
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
值
|
2
|
70
|
99
|
0
|
0
|
0
|
0
|
组别
|
第二组
|
||||||
位置
|
7
|
8
|
9
|
10
|
11
|
12
|
13 ...
|
值
|
3
|
25
|
54
|
11
|
0
|
0
|
0 ...
|
6
70 99 25 54 11 100
3