容斥原理

来源:互联网 发布:gvim windows 编辑:程序博客网 时间:2024/05/15 03:08



51Nod 1284


//求1 ~ n 中不是 2,3,5,7 的倍数的数的数量 #include<cstdio>int num[6] = {2,3,5,7};int n;int solve(){int ans = 0;//是那四个数的倍数的数的数量 for (int i = 1 ; i < (1<<4) ; i++)//选数 {int ant = 0;//选中数的数量 int k = 1;//记录选中数字的乘积 for (int j = 0 ; j < 4 ; j++){if (i & (1<<j))//检测第j个数有没有被选中 {ant++;k *= num[j];}}if (ant & 1)//ant % 2 == 1  表示奇数 ans += n / k;elseans -= n / k;}return ans;}int main() {scanf ("%d",&n);printf ("%d\n",n-solve());return 0;}


原创粉丝点击