给出两个数a,b

求k     使得 a+k b+k有最小公倍数

a,b同时加上一个非负整数k,使得,a+k,b+k的最小公倍数最小

因为最小公公倍数=x*y / gcd(x,y),所以肯定离不开最大公约数了;

首先有个结论 gcd(x,y)=gcd(x,y-x) (y>x)

令c=gcd(x,y),那么x%c=0,y%c=0,(y-x)%c=0,所以gcd(x,y)=gcd(x,y-x)

因为题目中d=x-y的值不会变,所以我们就可以通过枚举d的因子,来凑a+k (d的因子也是(a+k)的因子)

拓展欧几里德 算法 待学。。。

#include<bits/stdc++.h>
using namespace std;
using LL = long long;
LL gcd(LL a, LL b){
return b ? gcd(b, a % b) : a;
}
LL lcm(LL a, LL b){
return a * b / gcd(a, b);
}
int main(){
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
//gcd(a + k, b + k) == gcd(a - b, a + k);
LL a, b;
cin >> a >> b;
if(a < b) swap(a, b);
LL x = abs(a - b), ans = lcm(a, b), ansk = ;
for(LL i = , k; i * i <= x; i += ) if(x % i == ){
k = i - a % i;
if(lcm(a + k, b + k) < ans){
ans = lcm(a + k, b + k);
ansk = k;
}
k = x / i - a % (x / i);
if(lcm(a + k, b + k) < ans){
ans = lcm(a + k, b + k);
ansk = k;
}
}
if(a > b){ }
cout << ansk;
return ;
}

CF 552 Neko does Maths的更多相关文章

  1. Codeforces C.Neko does Maths

    题目描述: C. Neko does Maths time limit per test 1 second memory limit per test 256 megabytes input stan ...

  2. C. Neko does Maths

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  3. CF 552(div 3) E Two Teams 线段树,模拟链表

    题目链接:http://codeforces.com/contest/1154/problem/E 题意:两个人轮流取最大值与旁边k个数,问最后这所有的数分别被谁给取走了 分析:看这道题一点思路都没有 ...

  4. Neko does Maths CodeForces - 1152C 数论欧几里得

    Neko does MathsCodeForces - 1152C 题目大意:给两个正整数a,b,找到一个非负整数k使得,a+k和b+k的最小公倍数最小,如果有多个k使得最小公倍数最小的话,输出最小的 ...

  5. codeforces#1152C. Neko does Maths(最小公倍数)

    题目链接: http://codeforces.com/contest/1152/problem/C 题意: 给出两个数$a$和$b$ 找一个$k(k\geq 0)$得到最小的$LCM(a+k,b+k ...

  6. Codeforces Round #554 (Div. 2) C. Neko does Maths(数学+GCD)

    传送门 题意: 给出两个整数a,b: 求解使得LCM(a+k,b+k)最小的k,如果有多个k使得LCM()最小,输出最小的k: 思路: 刚开始推了好半天公式,一顿xjb乱操作: 后来,看了一下题解,看 ...

  7. C. Neko does Maths(数论 二进制枚举因数)

     题目链接:https://codeforces.com/contest/1152/problem/C 题目大意:给你a和b,然后让你找到一个k,使得a+k和b+k的lcm. 学习网址:https:/ ...

  8. Codeforce Round #554 Div.2 C - Neko does Maths

    数论 gcd 看到这个题其实知道应该是和(a+k)(b+k)/gcd(a+k,b+k)有关,但是之后推了半天,思路全无. 然而..有一个引理: gcd(a, b) = gcd(a, b - a) = ...

  9. CF #552(div3)G 最小lcm

    题目链接:http://codeforces.com/contest/1154/problem/G 题意:lcm是最小公倍数,本题就是给你一个数组(可能会重复),要求你判断出那两个数的最小公倍数最小, ...

随机推荐

  1. kubernetes 核心技术概念(二)之 volume namespace annoation

    volume k8s通过数据卷来提供pod数据的持久化,k8s的数据卷是对docker数据卷的扩展,k8s的数据卷是pod级别的,用来实现pod中容器的文件共享 volume是pod中能被多个容器访问 ...

  2. VMware 安装 Mac OS 注意事项

    Ø  简介 本文主要介绍使用 VMware 安装 Mac OS 的注意事项,主要包括一下内容: 1.   安装参考 2.   使用 VMware 运行 Mac OS 虚拟机注意事项 3.   解决 M ...

  3. ASP.NET后台调用API方法

    /// <summary> /// 调用API POST请求与获取结果 /// </summary> ///URL 与 JSON串 public static string H ...

  4. String Byte 互转

    string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte[]转成string: ...

  5. important的妙用解决firefox和ie的css兼容问题

    设置css的min-height属性.min-height在Firefox里有效,但IE无法识别.下面有个不错的解决方案,大家可以参考下 对于某些内容可变的层(比如用户评论),我们希望它有个最小的高度 ...

  6. QMQTT简单介绍(1)

    1 准备工具: wireshark安装包:网络抓包工具qmqtt源码:mqtt客户端源码(Qt版本)官网:http://mqtt.org/英文版协议说明文档:http://docs.oasis-ope ...

  7. shell 批量修改较长字符串 字符串内容之间更换位置

    cat 1.txt src='http://img2.tgbusdata.cn/v2/thumb/jpg/MkY5Myw2NTUsMzAzLDksMywxLC0xLDAscms1MCwxOTIuMTY ...

  8. JavaWeb处理GET、POST时的编码乱码问题

    对于GET方法,只要设置了res.setContentType("text/html;charset=UTF-8"), req.getParameter()就不会产生乱码. 对于P ...

  9. ef mysql

    App.config <configuration> <configSections> <!-- For more information on Entity Frame ...

  10. ps切图技巧

    步骤1: ps打开psd文件 步骤2: 点击移动工具,观察左上角的自动选择是否有勾选 ,如果没有最好勾选,对应的选项有图层和组,善于切换这个功能能够有效快速的找到你要的区域 步骤3: 找到要切图的元素 ...