- 최대공약수와 최소공배수를 구하는 문제
https://www.acmicpc.net/problem/2609
1. 문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
2. 문제 접근
1) 2개의 수를 입력받는다.
2) 유클리드 호제법을 사용하여 최대공약수를 구한다.
3) 2개의 수를 곱하고 최대공약수로 나누어서 최소공배수를 구한다.
3. 코드
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.StringTokenizer;
public class Main {
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 = GCD(n1, n2);
int lcm = n1*n2/gcd;
System.out.println(gcd);
System.out.println(lcm);
}
static int GCD(int n1, int n2) {
if(n2==0) {
return n1;
}
return GCD(n2, n1%n2);
}
}
'백준 > JAVA' 카테고리의 다른 글
[백준/JAVA] 1676번 팩토리얼 0의 개수 (0) | 2023.02.06 |
---|---|
[백준/JAVA] 1010번 다리 놓기 (0) | 2023.02.06 |
[백준/JAVA] 단계별로 풀어보기(8단계) 기본 수학 2 (0) | 2023.02.06 |
[백준/JAVA] 2477번 참외밭 (0) | 2023.02.06 |
[백준/JAVA] 단계별로 풀어보기(7단계) 기본 수학 1 (0) | 2023.02.06 |