본문 바로가기

백준 문제풀기/JAVA

[백준 13241 JAVA 자바] 최소공배수

최소 공배수는

두 수의 배수중 가장 작은 수 입니다

 

수학적으로 보면

두수의 곱 나누기 최대공약수 입니다

 

최대 공약수는

두 수의 약수중 가장 큰 수 입니다

 

약수를 알기 위해선 소수로 나눠봐야합니다

 

코드입니다

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


		String line = br.readLine();
		StringTokenizer st = new StringTokenizer(line);
		long a = Long.parseLong(st.nextToken());
		long b = Long.parseLong(st.nextToken());

		System.out.println(a*b/gcd(a,b));  
	}
	static long gcd(long a, long b) {
		while (b != 0) {
			long r = a%b;
			a=b;
			b=r;
		}
		return a;
	}
}

최대 공약수를 구하는 gcd 함수를 구현하여서

두 수의 곱에 나눴습니다