1284 2 3 5 7的倍数
题目链接:2 3 5 7 的倍数
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。
Input
输入1个数N(1 <= N <= 10^18)。
Output
输出不是2 3 5 7的倍数的数共有多少。
Input示例
10
Output示例
1
题目分析:容斥原理
/**
*容斥原理
*/
#include<iostream>
#include<cstdio>
#include<map>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
#include<vector>
#include<stack>
#include<cstdlib>
#include<cctype>
#include<cstring>
#include<cmath>
using namespace std;
__int64 RongChi(__int64 n){
__int64 i2,i3,i5,i7,i6,i10,i14,i15,i21,i35,i30,i42,i70,i105,i210;
i2=n/2;
i3=n/3;
i5=n/5;
i7=n/7;
i6=n/6;
i10=n/10;
i14=n/14;
i15=n/15;
i21=n/21;
i35=n/35;
i30=n/30;
i42=n/42;
i70=n/70;
i105=n/105;
i210=n/210;
return n-(i2+i3+i5+i7)+(i6+i10+i14+i15+i21+i35)-(i30+i42+i70+i105)+i210;
}
int main()
{
__int64 n;
while(cin>>n){
cout<<RongChi(n)<<endl;
}
return 0;
}