给出两个数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. Springboot集成FreeMarker

    Apache官网对FreeMarker的解释如下: Apache FreeMarker™是一个模板引擎 :一个基于模板和变化的数据来生成文本输出(HTML网页,电子邮件,配置文件,源代码,等等)的Ja ...

  2. Java IO系列之二:NIO基本操作

    核心部分  NIO( New Input/ Output) , 引入了一种基于通道和缓冲区的 I/O 方式,NIO 是一种同步非阻塞的 IO 模型.同步是指线程不断轮询 IO 事件是否就绪,非阻塞是指 ...

  3. Groovy里面闭包中变量符号的查找与变量定义的限制

    class a { def v1 = "v1 in a" static def v2 = "v2 in a" def v4 = "v4 in a&qu ...

  4. 解决axios在ie浏览器下提示promise未定义的问题

    参考链接: https://blog.csdn.net/bhq1711617151/article/details/80266436 在做项目的时候发现在ie11上出现不兼容的问题,对于和后台交互这块 ...

  5. 开启Apache的server status监测

    从httpd.conf 打开 status_module#LoadModule status_module modules/mod_status.so修改成LoadModule status_modu ...

  6. zip4j压缩

    使用的jar包:zip4j_1.3.2.jar 基本功能: 针对ZIP压缩文件创建.添加.分卷.更新和移除文件 (读写有密码保护的Zip文件) (支持AES 128/256算法加密) (支持标准Zip ...

  7. python matplotlib 简单生成图

    import numpy as np import pandas as pd from matplotlib import pyplot as plt data = pd.DataFrame([[1, ...

  8. python(random模块)取10以内的随机数

    上面有个selenium-webdriver循环点击百度搜索结果以及获取新页面的handler文章,随机获取百度搜索结果中不同id的结果,实现代码如下: #coding:utf- import ran ...

  9. selenium采用xpath方法识别页面元素

    有些HTML页面中的元素中属性较少,经常有找不到id.class.name等常用属性的时候,这个时候xpath.css就能很好的识别到我们的元素. Firefox和chrome浏览器中均有xpath. ...

  10. 迭代和JDB

    迭代和JDB 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能. 源代码 public class Combination { public st ...