최대공약수와 최소공배수
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1
24 18
예제 출력 1
6
72
제출 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int max = Math.max(a,b);
int result = 0;
for (int i = 1; i < max+1; i++) {
if(a%i == 0 && b %i == 0){
result = i;
}
}
System.out.println(result);
System.out.println(a * (b / result));
}
}
수학적으로 최대공약수와 최대공배수를 구하는 방법을 그대로 적용했다.
'Study > Algorithms' 카테고리의 다른 글
백준 2798 블랙잭 (Java) Next Permutation 활용 풀이 (0) | 2023.08.27 |
---|---|
백준 1929 소수 구하기 (JAVA) (1) | 2023.08.27 |
백준 2751 수 정렬하기 2 (JAVA) (0) | 2023.08.26 |
백준 1978 소수찾기(JAVA) (0) | 2023.08.26 |
백준 1920 수 찾기(JAVA) (0) | 2023.08.26 |