poj2429
来源:互联网 发布:c语言 时间戳转换函数 编辑:程序博客网 时间:2024/06/11 10:14
题目链接:http://poj.org/problem?id=2429
题意:给出a,b两个数的最小公倍数和最大公约数,求出a,b,并且a+b最小
解题思路:这题我没有想出什么简便的方法,只能用枚举的方法。在枚举之前,必须要进行一些预处理。首先,我们要知道的是:
a*b=GCD(a,b)*LCM(a,b);
GCD(a,b)=G,
GCD(a/G,b/G)=1,
LCM(a/G,b/G)=a/G*b/G=a*b/(G*G)=LCM(a,b)/G;
所以,要想枚举求出a,b。我们只需要求出a/G,b/G。要想a+b最小,只要a,b最接近就可以了。那个从sqrt(LCM(a,b)/G),枚举就可以了。
import java.util.Scanner;import java.math.*;public class Main{public static void main(String[] args){Scanner cin = new Scanner(System.in);long a, b, x, y;while(cin.hasNext()){a = cin.nextLong();b = cin.nextLong();x = y = 0;b /= a;for(long i = (long)Math.sqrt(b); i > 0; i --){if(b%i == 0&&gcd(i, b/i) == 1){x = i*a; y = b/i*a; break;}}System.out.println(x+" "+y);}}public static long gcd(long a, long b){if(a<b){long t =a; a = b; b = t;}if(b == 0) return a;else return gcd(b, a%b);}}
0 0
- poj2429
- POJ2429 GCD & LCM Inverse
- POJ2429 Pollard rho因子分解
- Poj2429 inverse of LCM&GCD
- POJ2429 GCD & LCM Inverse pollard_rho大整数分解
- poj2429 GCD & LCM Inverse 因数分解pollard_rho算法
- POJ2429 GCD & LCM Inverse (大整数分解)
- poj2429(miller_robin算法和pollard分解质因数)
- 【POJ2429】GCD & LCM Inverse-Pollard-rho分解+枚举
- poj2429 GCD & LCM Inverse 数论 大数分解以及找所有因子
- POJ2429 GCD&LCM Inverse(整数分解,由GCD+LCM求a,b)
- 《挑战程序设计竞赛》2.6.1 数学问题-辗转相除法 AOJ0005 POJ2429 1930(1)
- 打印素数,
- js取小数点后几位方法总结
- OVS - 简介
- Python 任何参数都设置
- Fast dev didn't succeed, trying another location..
- poj2429
- 关于display显示 linux
- 2015梦想起航,牛人都从写博客做起,me too
- C++中,一个类中调用另一个类
- Hummer TimeSeries DB Docker Demo 使用说明
- js 关键字一栏
- Java编程----猜数字游戏
- UIScrollView实现分页效果
- sqlite 修改表名,合并数据库(文件)