第一个容斥的题,感觉这东西好神啊。于是扒了一发题解2333

首先想对于[1,x]内有多少与n,m都互质的数,显然x是存在单调性的,所以可以二分一下。

那么互质的数的求法,就是x-存在n,m一个质因数的+存在2个质因数-3+4.....暴力搜索就可以(搜索都不会写233)

#include<bits/stdc++.h>
#define N 100005
#define M 10000005
#define lowbit(x) x&(-x)
#define LL long long
#define inf 0x3f3f3f3f
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
map<int ,bool > mp;
int n,m,k,cnt;
LL p[N];
void getprime(LL x)
{
for (LL i=; i*i<=x; i++)
{
if (x%i== && !mp[i])
{
mp[i]=; p[++cnt]=i;
}
while (x%i==) x/=i;
}
if (x> && !mp[x]) mp[x]=,p[++cnt]=x;
}
LL dfs(int pos, LL x)
{
LL ans=;
for (int i=pos; i<=cnt; i++)
ans+=x/p[i]-dfs(i+,x/p[i]);
return ans;
}
LL find(LL l, LL r, LL k)
{
while (l<=r)
{
LL mid=l+r>>;
if ((mid-dfs(,mid))<k) l=mid+;
else r=mid-;
}
return l;
}
int main()
{
int T=ra(); int cse=;
while (T--)
{
n=ra(); m=ra(); k=ra();
mp.clear(); cnt=;
getprime((LL)n); getprime((LL)m);
printf("Case %d: %I64d\n",++cse, find(1LL,1000000000000000LL,(LL)k));
}
return ;
}

最新文章

  1. JavaScript高级编程 (1) - javscript是什么
  2. SCI Index
  3. sql注入基于错误-单引号-字符型
  4. FPGA Verilog HDL 系列实例--------步进电机驱动控制
  5. Android学习笔记之如何使用圆形菜单实现旋转效果...
  6. 转ATL对象类型
  7. HDU4607+BFS
  8. phpDesigner 7.2.5 注册码 更改 语法高亮 主题
  9. Visual Studio 如何给生成的exe加入多个图标资源
  10. ios沙盒查找图片展示
  11. fastDFS与java整合文件上传下载
  12. Flink从入门到放弃(入门篇4) DataStreamAPI
  13. Linux 开(关) ICMP 回应(防止被ping)
  14. Vue 加载第三方插件
  15. python+unnitest时运行后不执行main函数里面的内容
  16. ASP.NET Identity V2简单介绍
  17. 【kafka】confluent_kafka重置offset
  18. JS_高程2.在HTML中使用Javascript(2)
  19. springmvc.xml 中 &lt;url-pattern&gt;&lt;/url-pattern&gt;节点详解
  20. ubuntu 16.04 编译安装 trl8291cu系列 无线网卡驱动

热门文章

  1. Logback的AsyncAppender与RollingFileAppender流程解析
  2. 三 保存客户&amp;分页查询&amp;Spring解决延迟加载问题
  3. [DllImport(&quot;kernel32.dll&quot;)]
  4. pytorch max和clamp
  5. 原生JS写表单验证提交功能
  6. python 输入年月日,返回当天是星期几
  7. redisTemplate注入为空
  8. tab选项卡,不带自动切换定时器
  9. 官网英文版学习——RabbitMQ学习笔记(四)Work queues
  10. Ubuntu上安装tftp服务