51nod 1284
2 3 5 7 的倍数
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。
输入
输入1个数N(1 <= N <= 10^18)。
输出
输出不是2 3 5 7的倍数的数共有多少。
输入样例
10
输出样例
1
AC代码
#include "iostream"
using namespace std;
#define LL long long
int a[]={2,3,5,7};
int main(int argc, char const *argv[]) {
LL n;
cin>>n;
LL a=n/2;
LL b=n/3;
LL c=n/5;
LL d=n/7;
LL ab=n/6;
LL ac=n/10;
LL bd=n/21;
LL cd=n/35;
LL ad=n/14;
LL bc=n/15;
LL abc=n/30;
LL abd=n/42;
LL acd=n/70;
LL bcd=n/105;
LL abcd=n/210;
cout<<n-(a+b+c+d-ab-ac-bd-cd-ad-bc+abc+abd+acd+bcd-abcd)<<endl;
return 0;
}