容斥原理
链接:https://www.nowcoder.com/acm/contest/75/G
来源:牛客网
题目描述
给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数。
输入描述:
本题有多组输入
每行一个数n,1<=n<=10^18.
输出描述:
每行输出输出不是2 5 11 13的倍数的数共有多少。
示例1
输入
15
输出
4
说明
1 3 7 9
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n,a;
while( ~scanf("%lld",&n)){
a=n/2;
a+=n/5;
a+=n/11;
a+=n/13;
a-=n/10;
a-=n/22;
a-=n/26;
a-=n/55;
a-=n/65;
a-=n/143;
a+=n/2/5/11;
a+=n/5/11/13;
a+=n/2/11/13;
a+=n/2/5/13;
a-=n/2/5/11/13;
printf("%lld\n",n-a);
}
return 0;
}

浙公网安备 33010602011771号