poj 2773 容斥原理+二分(求与n的第k互质数)
来源:互联网 发布:firebird sql server 编辑:程序博客网 时间:2024/05/22 20:16
点击打开链接
#include <iostream>#include <cstring>#include <vector>using namespace std;typedef long long ll;const int N=1e6+20;const ll inf=1e12;ll n,k,num,ans;int fac[N];void Get(ll n){for(int i=2;i*i<=n;i++){if(n%i==0){fac[num++]=i;while(n%i==0)n/=i;}}if(n>1)fac[num++]=n;}ll dfs(int id,ll m)//容斥原理算1~m与n不互质的个数 {ll cnt=0;for(int i=id;i<num;i++){cnt+=m/fac[i]-dfs(i+1,m/fac[i]);}return cnt;}int main(){while(cin>>n>>k){num=0;Get(n);ll l=1,r=inf;while(l<=r)//1~x1中与n互质个数小于1~x2中与n互质个数 x1<x2 满足单调性用二分求第k个 {ll m=(l+r)/2;ll cnt=m-dfs(0,m);//求1~m中有多少个数与n互质 if(cnt>=k){r=m-1;if(cnt==k)ans=m;//记录最左边成立的m }else {l=m+1;}}cout<<ans<<endl;}return 0;}
0 0
- poj 2773 容斥原理+二分(求与n的第k互质数)
- poj 2773 容斥原理求第k个与m互质的数
- NYOJ 题目762 第k个互质数(容斥原理+二分)
- nyoj 第k个互质数(二分+容斥原理)
- nyoj762~第k个互质数(容斥原理+二分)
- 容斥原理求1到n与k互质个数
- NYOJ 762 第k个互质数(二分 + 容斥)
- poj 2773 Happy 2006(求第k个与n互质的数)
- 【容斥原理】求1~n有多少个数与k互质
- (Relax 1.15)POJ 2773 Happy 2006(欧拉函数的应用:求与n互质的第k个数)
- 求与N互质数的个数
- 容斥原理的应用---求1--r中与n互素数的个数
- 求a~b内与n互素的数的个数 容斥原理
- 求指定区间内与n互素的数的个数 容斥原理
- 【容斥原理-求区间内与n互质的数】HDOJ Co-prime 4135
- POJ 2773 二分 +容斥原理
- poj 2773 容斥原理+二分
- poj-2773(数论+容斥原理+二分)
- 校验日期格式为yyyy-MM-dd
- 成员变量多态问题
- Android面试指南-面霸之路09-经验分享
- 激活idea15.0方法
- Cocos2d-x 3.x 生成和加载plist文件
- poj 2773 容斥原理+二分(求与n的第k互质数)
- Hexo主题Yelee介绍
- Mycat安装
- 微服务(Microservices)
- CODEVS 1014装箱问题
- glmis项目工作日志2_增加登录界面_将drawerlayout改为挤压滑动
- MySQL 4.1/5.0/5.1/5.5/5.6/5.7各版本的主要区别
- Spring Bean的初始化和销毁方式详解
- 区块链知识库