分成互质组
Description
给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?
Input
第一行是一个正整数n。1 <= n <= 10。
第二行是n个不大于10000的正整数。
Output
一个正整数,即最少需要的组数。
Sample Input
6
14 20 33 117 143 175
Sample Output
3
Source
2008年第十三届“华罗庚金杯”少年数学邀请赛 决赛第5题
做题地址:OpenJudge-7084:分成互质组 (需要注册)
求解此题,有各种各样的歪门邪道,最常用的有两种:
1:暴力 for for for
2: 套数学方法
作者选择暴力(︿( ̄︶ ̄)︿噜噜噜噜)
而在暴力for下面还有很多细小的优化处理
可以使用求最大连通块的种子法优化:
第一个for寻找未被种子标记的数,使用另一个种子初始化(推荐从1递增)
第二个for寻找与相同种子互质