传送门:http://codeforces.com/contest/1047/problem/C 题意:给出n个数字,求最少删除几个数可以使剩下的数字的GCD大于n个数字的GCD 思路:最开始想的是先遍历求N个数的GCD,然后外层循环从i=g+1(g=GCD)开始,内层从j=1开始找a[j]%i==0的个数t, 求出最大的个数,如果求出的个数不为零,输出n-t,否则输出-1,但这样会超时,要优化: 看了别人的题解,要用到素数筛的方法. 第一步都是遍历求g=GCD.第二步求a[i]/g出现的次数.…