Solve Equation gcd(x,y)=gcd(x+y,lcm(x,y)) gcd(x,y)=1 => gcd(x*y,x+y)=1
- /**
- 题目:Solve Equation
- 链接:http://acm.hnust.edu.cn/JudgeOnline/problem.php?id=1643 //最终来源neu oj 2014新生选拔赛题
- 题意:给定两个数的和以及他们的最小公倍数,求这两个数。
- 思路:
- x+y=A
- lcm(x,y)=B => x*y/gcd(x,y)=B
- 要把这两个公式联立,那么必须消掉gcd;
- 设:d = gcd(x,y), x = kx*d, y = ky*d; kx与ky互质;
- x+y=A => d(kx+ky)=A
- x*y/gcd(x,y)=B => d*kx*ky=B
- 由于kx与ky互质,所以kx*ky与(kx+ky)互质,那么d的大小为gcd(A,B);
- 那么:
- x+y=A
- x*y/gcd(A,B)=B; 联立两个式子判断是否可以获得整数解再解方程即可。
- 得出结论:gcd(x,y) = gcd(A,B) = gcd(x+y,lcm(x,y));
- 一元二次方程解
- b*b-4*a*c>=0有解。
- x1 = (-b+sqrt(b*b-4*a*c))/(2*a);
- x2 = (-b-sqrt(b*b-4*a*c))/(2*a);
- 要判断是否是整数解,则要对分母对分子取余为0,以及开根号后为整数值。
- */
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- #include<algorithm>
- #include<cmath>
- using namespace std;
- typedef long long ll;
- const int maxn = ;
- ll gcd(ll a,ll b)
- {
- return b==?a:gcd(b,a%b);
- }
- int main()
- {
- ll A, B;
- while(scanf("%lld%lld",&A,&B)==)
- {
- ll d = gcd(A,B);
- ll deta = A*A-*d*B;
- ll p = sqrt(deta+0.00001);
- if(p*p!=deta){
- printf("No answer\n");
- }else
- {
- if((A+p)%!=){
- printf("No answer\n");
- }else
- {
- ll x = (A-p)/;
- ll y = (A+p)/;
- printf("%lld %lld\n",x,y);
- }
- }
- }
- return ;
- }
Solve Equation gcd(x,y)=gcd(x+y,lcm(x,y)) gcd(x,y)=1 => gcd(x*y,x+y)=1的更多相关文章
- ACM: FZU 2102 Solve equation - 手速题
FZU 2102 Solve equation Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- FZOJ 2102 Solve equation
...
- 数论-质因数(gcd) UVa 10791 - Minimum Sum LCM
https://vjudge.net/problem/UVA-10791/origin 以上为题目来源Google翻译得到的题意: 一组整数的LCM(最小公倍数)定义为最小数,即 该集合的所有整数的倍 ...
- GCD(最大公约数)和LCM(最小公倍数)的求法
GCD(最大公约数) (1)辗转相除法(欧几里得算法)(常用) 将两个数a, b相除,如果余数c不等于0,就把b的值给a,c的值给b,直到c等于0,此时最大公约数就是b (2)更相减损术 将两个书中较 ...
- FZU 2102 Solve equation(水,进制转化)&& FZU 2111(贪心,交换使数字最小)
C Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Pra ...
- Mathematics:GCD & LCM Inverse(POJ 2429)
根据最大公约数和最小公倍数求原来的两个数 题目大意,不翻译了,就是上面链接的意思. 具体思路就是要根据数论来,设a和b的GCD(最大公约数)和LCM(最小公倍数),则a/GCD*b/GCD=LCM/G ...
- gcd,lcm,ext_gcd,inv
Least Common Multiple http://acm.hdu.edu.cn/showproblem.php?pid=1019 #include<cstdio> int gcd( ...
- 牛客练习赛44 C 小y的质数 (数论,容斥定理)
链接:https://ac.nowcoder.com/acm/contest/634/C 来源:牛客网 题目描述 给出一个区间[L,R],求出[L,R]中孪生质数有多少对. 由于这是一个区间筛质数的模 ...
- 牛客练习赛44 A 小y的序列 (模拟,细节)
链接:https://ac.nowcoder.com/acm/contest/634/A 来源:牛客网 小y的序列 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语 ...
随机推荐
- 【SQL Server学习笔记】事务、锁定、阻塞、死锁 sys.sysprocesses
http://blog.csdn.net/sqlserverdiscovery/article/details/7712068 Column name Data type Description ...
- telnet协议的作用详解,以及telnet端口号介绍
转:http://www.ctowhy.com/382.html Telnet协议,工作在TCP/IP协议栈的“应用层”,telnet是一种使用命令行的远程终端管理的协议,可以远程连接到网络设备上,并 ...
- 【java】处理时间字段 在数据库查询的时候只想要年月日,不想要时分秒 ,java中设置时间类型为年月日,java中设置Date中的时分秒为00.00.000
JDK8 中最简单的处理方式: @Test public void dateTest(){ Date now = new Date(); System.out.println(now); // jav ...
- 关于在.NET中 DAL+IDAL+Model+BLL+Web
其实三层架构是一个程序最基本的 在.Net开发中通常是多层开发比如说 BLL 就是business Logic laywer(业务逻辑层) 他只负责向数据提供者也就是DAL调用数据 然后传递给 ...
- 重新学习vue基础
1.创建vue实例 var vm = new Vue({ el: '#example', //选择元素 data: {a:1} //基本数据 }) 2.模板语法 (一)基本语法 <span> ...
- iOS:IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
原文链接:http://blog.csdn.net/daleiwang/article/details/34081231 (3)在项目的AppDelegate中一般情况下有三个操作,第一是注册Shar ...
- 计算两个经纬度之间的距离(python算法)
EARTH_REDIUS = 6378.137 def rad(d): return d * pi / 180.0 def getDistance(lat1, lng1, lat2, lng2): r ...
- 【枚举】【SDOI 2011】【bzoj 2241】打地鼠
2241: [SDOI2011]打地鼠 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 877 Solved: 557 Description 打地鼠是 ...
- 高仿手机QQ音乐之——Android带进度条的开关
最新版的手机QQ音乐体验确实不错,发现首页播放按钮能够显示歌曲当前进度条.认为挺有新意.效果例如以下: 自己琢磨了下.能够用自己定义组件来实现,试着做了一下.效果例如以下: 整理了下思路.大概设计流程 ...
- mac打开所有软件源
sudo spctl --master-disable