给出一个数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的倍数的数共有多少。
Sample Input10
Sample Output1
#include<iostream>//包含排斥原理 不被2,3,5,7整除
#include<algorithm>
using namespace std;
int main(){long long int n;cin>>n;cout<<n-(n/2+n/3+n/5+n/7)+(n/6+n/15+n/21+n/10+n/35+n/14)-(n/30+n/42+n/70+n/105)+(n/210)<<endl;
}
//cnt=n-(a+b+c+d)+(a*b+a*c+a*d+b*c+b*d+c*d)-(a*b*c+a*c*d+b*c*d)+(a*b*c*d);