很有意思的一个数论题. 是这样的,给你一个数数组a[i],其中给出的每一个数字和要求的数字方位都是[1,m],现在问你根据a[]构造一个b[],且a和b中间的不相等的元素的个数恰好有k个. 现在问你gcd(b[])分别为1,2,……,m的个数分别有多少种可能情况. 额...是这样来考虑的.——————容斥原理. 有点像素数筛选,但是复杂一点. 对于个数我们需要从大到小来求解(这里的缘由自己想象就知道了) 假设当前我需要求解有多少个情况满足gcd(b[])=x,那么显然b中的所有的数都必须是x的倍…