AOJ 0005 GCD and LCM
方針
最大公約数を求めるためにBigIntegerクラスのgcdメソッドを使いました。
また、2つの正の整数a,bの最大公約数をgcd(a,b)と表現し、最小公倍数をlcm(a,b)と表したとき、以下のような関係
を用いてlcm(a,b)を簡単に求めることができます。
例:
a = 6, b = 15とする。
このとき、最大公約数は3であるので、求める最小公倍数は
-
-
-
- となります。
-
-
ソース
import java.util.*; import java.math.*; public class Main { static Scanner sc = new Scanner(System.in); static BigInteger a, b; public static void main(String[] args) { while(read()){ solve(); } } static boolean read(){ if(!sc.hasNext()) return false; a = sc.nextBigInteger(); b = sc.nextBigInteger(); return true; } static void solve(){ System.out.print(gcd(a, b) + " "); System.out.println(lcm(a, b)); } static BigInteger gcd(BigInteger a, BigInteger b){ return a.gcd(b); } static BigInteger lcm(BigInteger a, BigInteger b){ return a.multiply(b).divide(gcd(a,b)); } }