输入一个n,求解1到n中有多少个数不是2、3、5、7的倍数。
解析:典型的容斥原理。
void solve()
{
#ifndef ONLINE_JUDGE
freopen("input.in","r",stdin);
#endif
LL n, a, b, c, d, ab, ac, ad, bc, bd, cd, abc, abd, acd, bcd, abcd;
RDL(n);
a = n / 2;
b = n / 3;
c = n / 5;
d = n / 7;
ab = n / 6;
ac = n / 10;
ad = n / 14;
bc = n / 15;
bd = n / 21;
cd = n / 35;
abc = n / 30;
abd = n / 42;
acd = n / 70;
bcd = n / 105;
abcd = n / 210;
LL ans = n - a - b - c - d + ab + ac + ad + bc + bd + cd - abc - abd - acd - bcd + abcd;
PUTL(ans);
}