UVA11388 GCD LCM
(链接点这儿)
题目:
The GCD of two positive integers is the largest integer that divides both the integers without any remainder. The LCM of two positive integers is the smallest positive integer that is divisible by both the integers. A positive integer can be the GCD of many pairs of numbers. Similarly, it can be the LCM of many pairs of numbers. In this problem, you will be given two positive integers. You have to output a pair of numbers whose GCD is the first number and LCM is the second number.
Input The first line of input will consist of a positive integer T. T denotes the number of cases. Each of the next T lines will contain two positive integer, G and L. Output For each case of input, there will be one line of output. It will contain two positive integers a and b, a ≤ b, which has a GCD of G and LCM of L. In case there is more than one pair satisfying the condition, output the pair for which a is minimized. In case there is no such pair, output ‘-1’. Constraints • T ≤ 100 • Both G and L will be less than 231 .
Sample Input 2 1 2 3 4
Sample Output 1 2 -
题目大意:
其实就是说,给你两个数的GCD和LCM,让你求一种小的那个数尽可能的小,并大的在这个基础上也尽可能的小的那两个数。
先上代码!
#include<bits/stdc++.h>
using namespace std;
int t;
long long a,b,c,d,ans[][];
int main()
{
cin>>t;
for(int i=;i<=t;i++)
{
cin>>a>>b;
if(b%a==)//如果GCD可被LCM整除
{
ans[i][]=a;
ans[i][]=b;
continue;
}
else ans[i][]=-;
}
for(int i=;i<=t;i++)
if(ans[i][]==-)
printf("-1\n");
else
printf("%lld %lld\n",ans[i][],ans[i][]);
return ;
}
为什么可以这么写呢?下面我详细讲一讲:
证明:
我们先看到第11行的if语句:当GCD可被LCM整除时,两个数为GCD和LCM。
我们设两个数分别为a,b。(a<=b)
首先我们知道,GCD一定可以被a和b整除,而a和b又可以被LCM整除,所以GCD一定可被LCM整除。
而我们又知道,当一个数x可被y整除时,他们的GCD为x,LCM为y
又因为GCD*k=a(k>=1&&k==int(k)),所以a>=GCD,最小值为GCD。
所以我们这里就设a为最小值。(也就是a=GCD)
我们确定了a以后,又根据公式:GCD*LCM=a*b,其中GCD,a,LCM已知,所以b的值一定是固定的,而且就等于LCM。
所以当a取最小值(a=GCD(a,b),b=LCM(a,b))时,(a,b)为符合要求的最优解。
证毕。
第11行证完了之后,我们再来证第17行的else语句。
其实还是利用GCD一定可以被a和b整除,而a和b又可以被LCM整除,所以GCD一定可被LCM整除这个原理。
所以一定无解。
证毕。
这个时候我们就证完了。O(t)算法(其实可以算是O(1))。
如果你觉得你有更巧妙的方法,欢迎在下方留言。
UVA11388 GCD LCM的更多相关文章
- 洛谷 UVA11388 GCD LCM
UVA11388 GCD LCM Description of the title PDF The GCD of two positive integers is the largest intege ...
- UVA11388 GCD LCM(数论)
题目链接. 题意: 给定两个数,一个G,一个L,找出两个数a,b(a<=b),使得这两个数的最大公约数为G,最小公倍数为L,且(a最小). 分析: 当a,b存在时,a一定为G. 自己证了一下,数 ...
- Mathematics:GCD & LCM Inverse(POJ 2429)
根据最大公约数和最小公倍数求原来的两个数 题目大意,不翻译了,就是上面链接的意思. 具体思路就是要根据数论来,设a和b的GCD(最大公约数)和LCM(最小公倍数),则a/GCD*b/GCD=LCM/G ...
- POJ 2429 GCD & LCM Inverse (Pollard rho整数分解+dfs枚举)
题意:给出a和b的gcd和lcm,让你求a和b.按升序输出a和b.若有多组满足条件的a和b,那么输出a+b最小的.思路:lcm=a*b/gcd lcm/gcd=a/gcd*b/gcd 可知a/gc ...
- [POJ 2429] GCD & LCM Inverse
GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10621 Accepted: ...
- POJ 2429 GCD & LCM Inverse(Pollard_Rho+dfs)
[题目链接] http://poj.org/problem?id=2429 [题目大意] 给出最大公约数和最小公倍数,满足要求的x和y,且x+y最小 [题解] 我们发现,(x/gcd)*(y/gcd) ...
- UVA - 11388 GCD LCM
II U C ONLINE C ON TEST Problem D: GCD LCM Input: standard input Output: standard output The GC ...
- hdu-3071 Gcd & Lcm game---质因数分解+状态压缩+线段树
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...
- [ 9.13 ]CF每日一题系列—— 340A GCD & LCM
Description: [ 着实比较羞愧,都想着去暴力,把算法(方法)也忘了] A只涂x,2x,3x……,B只涂y,2y,3y……问你A和B共同涂的墙的个数 Solution: 就是求x和y的lcm ...
随机推荐
- Python 爬虫从入门到进阶之路(十六)
之前的文章我们介绍了几种可以爬取网站信息的模块,并根据这些模块爬取了<糗事百科>的糗百内容,本章我们来看一下用于专门爬取网站信息的框架 Scrapy. Scrapy是用纯Python实现一 ...
- asp.net core系列 67 Web压力测试工具WCAT
一.介绍 最近搭建了一套CQRS框架,需要在投入开发前,进行必要的压力测试.Web Capacity Analysis Tool (Wcat)是一种轻量级HTTP负载生成工具,主要用于衡量受控环境中 ...
- iOS邓白氏编码申请流程及苹果账号组织名称变更
邓氏编码(D-U-N-S®Number,是Data Universal Numbering System的缩写).它是一个独一无二的9位数字全球编码系统,相当于企业的身份识别码 (就像是个人的身份证) ...
- 提高JavaScript 技能的12个概念
JavaScript 是一种复杂的语言.如果是你是高级或者初级 JavaScript 开发人员,了解它的基本概念非常重要.本文介绍 JavaScript 至关重要的12个概念,但绝对不是说 JavaS ...
- BZOJ 2039人员雇佣
这道题教会我们一个道理靠谁也不如靠自己. 当时学长已经讲了,然而一脸懵逼,好吧,上网搜题解,二脸懵逼,于是自己动手,丰衣足食.自己推! 首先就是建模了,这道题谁与谁之间建模已经十分明了,超级源点,超级 ...
- Linux系统-CENTOS7界面美化
前期准备: 在美化前,我们先安装一个扩展源. yum install -y epel-release 然后安装字体包 yum -y install liberation-mono-fonts 安装gn ...
- Spring Aware 到底是什么?
通过如下前序两篇文章: Spring Bean 生命周期之"我从哪里来"? Spring Bean 生命周期之"我要到哪里去"? 我们了解了 Spring Be ...
- AT649 自由研究
这道题有些水... 我们观察到,这是一道彻底离线的题目,连输入也没有,我们可以发现1<=n<=401<=n<=401<=n<=40 于是,我们就可以考虑n=1n=1 ...
- html提示框插件
最近工作需要,用到各式各样的提示框,寻找了很久,发现一个的第三方的插件很好用,各种样式.接口良好.允许自定义. 官网:http://layer.layui.com/ 使用需要先引入jq1.8以上: & ...
- c语言进阶13-线性表之顺序表
一. ACM算法:顺序表的查找 顺序表的查找指获取顺序表的第i个元素.对于线性表的顺序存储结构来说,如果我们要实现获取元素的操作(GetElem),即将线性表L中的第i个位置元素值返回.就程序而言,只 ...