题意

  • 给出n,求1~n之中,有多少数不是2,5,11,13的倍数

思路

  • 容斥原理,用n减去即可

代码

#include<bits/stdc++.h>
using namespace std;
long long n;

void solve(){
    cout << n-(n/2+n/5+n/11+n/13
    -n/(2*5)-n/(2*11)-n/(2*13)-n/(5*11)-n/(5*13)-n/(11*13)
    +n/(2*5*11)+n/(2*5*13)+n/(2*11*13)+n/(5*11*13)
    -n/(2*5*11*13)) <<endl;
}
int main(){
    while(cin >> n){
        solve();
    }
}