【容斥原理】求1~n有多少个数与k互质
2017-08-03 00:38
155 查看
//n除以奇数个数相乘的时候是加,n除以偶数个数相乘的时候是减。 #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; else ans -= n / k; } return ans; } int main() { scanf ("%d",&n); printf ("%d\n",n-solve()); return 0; }
相关文章推荐
- 容斥原理应用(求1~r中有多少个数与n互素)
- 容斥原理应用(求1~r中有多少个数与n互素)
- 容斥原理 —— 求1~n有多少个数与k互质(二进制算法详细解释&模板)
- 容斥原理应用(求1~r中有多少个数与n互素)
- 容斥原理应用(求1~r中有多少个数与n互素)
- 容斥原理
- 【HDU5578 2015上海赛区F】【水题】Friendship of Frog 最近的两个相同字符的距离是多少
- 输入一个数number,如果存在三个质数的和等于该数,则称是这三个质数是一组符合条件的数,请输出一共有多少组符合该条件的数?
- 如何从H.264码流中确定每个P帧中有多少I宏块?
- app多少钱,开发一款app到底多少钱合适,开发一款APP应用大概需要多少钱
- 的发换个地方号发,的发光飞碟多少
- UILabel根据字数多少自动实现适应高度
- mysql中varchar最长多少
- 捡了个美男,该卖多少钱?
- 控制面板知多少
- 请给出一个算法,使之对于给定的介于0到k之间的n个整数进行预处理,并能在O(1)时间内,回答出输入的整数中有多少个落在区间[a..b]内,你给出的算法上预处理时间应是O(n+k)。
- 一个进程(Process)最多可以生成多少个线程(Thread)
- 判断100-200之间有多少素数 并输出所有素数
- 总结一下到底有多少event会促使DBWR将数据写入Disk
- java实现计算两个日期相差多少月、比较两个日期大小 等常用日期操作