这题可以m很小,可以考虑容斥,令f(i)为所有小于等于n且是i的倍数的数的数量,那么答案就是n-f(a1)-f(a2)-f(a3)-......-f(am)+f(lcm(a1,a2))+f(lcm(a1,a3))+....+f(lcm(am-1,am))-f(lcm(a1,a2,a3))-f(lcm(a1,a2,a4)).......也就是奇数减掉,偶数加起来,这是一个经典的集合容斥,对于f(i),我们可以发现f(i)=n/i,这是很容易计算的; #include<bits/stdc++.h> #include<cstdio> using namespace std; ...