문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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 a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int gcd = GCD(a,b);
System.out.println(gcd);
System.out.println(a*b/gcd);
}
public static int GCD(int a, int b){
while(b>0){
int temp = a;
a = b;
b = temp % b;
}
return a;
}
}
문제 출처
https://www.acmicpc.net/problem/2609
'Study > Test(Java)' 카테고리의 다른 글
| [백준] 1181 단어 정렬 Java (0) | 2023.07.06 |
|---|---|
| [백준] 11050 이항 계수 1 Java (0) | 2023.07.06 |
| [백준] 1546 평균 Java (0) | 2023.07.05 |
| [백준] 1259 팰린드롬수 Java (0) | 2023.07.05 |
| [백준] 2798 블랙잭 Java (0) | 2023.07.05 |