dp就行吧 f[i] 表示最大公约数为i的方案数 容量只需要枚举k的倍数就行(否则会超时) 状态转移f[__gcd(a[i], j)] += f[j]