51 Nod 1284 2 3 5 7的倍数(容斥原理)
来源:互联网 发布:linux 显示当前目录 编辑:程序博客网 时间:2024/06/10 19:31
1284 2 3 5 7的倍数
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
收藏
关注
给出一个数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的倍数的数共有多少。
Input示例
10
Output示例
1
题意:》》》》》;
思路:容斥原理:我们找出和2 3 5 7不互质的数,拿总数减去即可;
下面附上代码:
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll num[6]={2,3,5,7};//储存质因子; ll n;ll nop(){ll ams=0;for(ll i = 1;i < (1<<4);i++)//有4个质因子的话那么他们就会有2^4-1个组合 {ll ans=0;ll k=1;for(ll j=0;j<4;j++){if(i & (1<<j))//这是来验证哪几个质因子被选中 { //比如当i=3,j=2时,i和j进行与运算 ans++; // 0011 & 0010 ----> 0010,那么表示 k*=num[j];//第二个质因子'3'被选中,这样就可以得到不同数的组合 }}if(ans & 1)//当选中的数的个数是奇数,就加上,(容斥原理---->奇加偶减) ams += n/k;elseams -= n/k;}return ams; } int main(){scanf("%lld",&n);printf("%lld\n",n-nop());//拿总数减去和2 3 5 7不互质的数 return 0;}
阅读全文
0 0
- 51nod 1284:2 3 5 7的倍数 容斥原理
- 51nod 1284 2 3 5 7的倍数(容斥原理)
- 51nod 1284 2 3 5 7的倍数 容斥原理
- 51nod 1284 2 3 5 7的倍数(基础容斥原理)
- 【51Nod】1284 - 2 3 5 7的倍数(容斥原理 & 二进制优化)
- 51Nod 1284 2 3 5 7的倍数 (容斥原理)
- 51nod 1284 2、3、5、7的倍数 (容斥原理)
- 51nod 1284 2 3 5 7的倍数(容斥原理)
- 51 Nod 1284 2 3 5 7的倍数(容斥原理)
- 51nod 1284 2 3 5 7的倍数 容斥原理
- 51nod 1284 2 3 5 7的倍数 容斥原理
- 51nod-1284 2 3 5 7的倍数 (容斥原理)
- 51nod 1284 2 3 5 8的倍数(容斥原理)
- 51nod 1284 2 3 5 7的倍数(容斥定理)
- 51nod 1284 2 3 5 7的倍数(容斥定理)
- 51nod 1284 2 3 5 7的倍数(容斥)
- 51nod - 1284 2 3 5 7的倍数(容斥)
- [51NOD]1284-2 3 5 7的倍数 [容斥]
- 邮件发送和接收邮件原理
- ORACLE数据库 NVL 和 NVL2
- 【并查集】poj 1182 食物链
- kafka offset 新存储机制
- 集合二
- 51 Nod 1284 2 3 5 7的倍数(容斥原理)
- python排序,保留索引值
- 关于unity中的update、Lateupdate和FixedUpdate
- Web前端开发工程师编程能力飞升之路 [转]
- Spring Aspectj 代理 前置 后置 以及 异常
- centos7下cron命令
- 状态模式----State Pattern
- 算法 c语言 链式插入排序算法
- 【剑指offer】面试题43:1~n整数中1出现的次数