当前位置: 代码迷 >> 综合 >> 51Nod1284--离散数学--排斥原理--循环超时
  详细解决方案

51Nod1284--离散数学--排斥原理--循环超时

热度:63   发布时间:2023-12-12 06:41:11.0

给出一个数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); 


 

  相关解决方案