Algorithm/정올 알고리즘

정올_1658 최대 공약수와 최소 공배수(자바) / 수학1

미스터로즈 2021. 6. 26. 16:09

시간&메모리 제한

 

문제

 

입력&출력

 

문제 풀이

 package com.jungol;

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

public class jungol_1658 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int N1 = Integer.parseInt(st.nextToken());
		int N2 = Integer.parseInt(st.nextToken());
		
		
		int gcd = get_gcd(N1,N2);
		int lcm = gcd;
		lcm = lcm * (N1/gcd);
		lcm = lcm * (N2/gcd);
		System.out.println(gcd);
		System.out.println(lcm);
	}
	
	//유클리드 호제법
	//GCD(A,B) = GCD(B,r)
	private static int get_gcd(int n1, int n2) {
		int r=0;
		while(n2!=0) {
			r = n1%n2;
			n1 = n2;
			n2 = r;
		}
		return n1;
	}
}

 

- 최소 공배수와 최대 공약수를 구하는 문제입니다.

 

- 유클리드 호제법을 이용해서 구할 수 있습니다.

 

- get_gcd 함수가 유클리드 호제법을 이용하는 부분입니다.