https://www.acmicpc.net/problem/1934
문제
- 첫째 줄에 테스트 케이스의 개수 (1 <= T <= 1000)입력.
- 둘째 줄부터 T개의 줄에 걸쳐 A와 B가 주어짐 (1 <= A, B <= 45000).
- A와 B의 최소공배수를 입력받은 순서대로 한 줄에 하나씩 출력.
유클리드 호제법으로 최대공약수를 구한 후 두 수를 곱해 최대공약수로 나누면 최대공배수가 나온다.
완성 코드
import java.util.Scanner;
public class Main {
public static int gcd(int a, int b) { //유클리드호제법
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a, b, result;
for (int i = 0; i < n; i++) {
a = sc.nextInt();
b = sc.nextInt();
result = a * b / gcd(a, b);
System.out.println(result);
}
}
}
bufferedStream을 쓰고 싶었는데 readline은 한 줄씩 받으니까 띄어쓰기 단위로 받는 방법을 모르겠어서 일단 스캐너를 썼다...
띄어쓰기 단위로 받는 방법을 찾아야겠다.
'백준 문제 풀이 > 백준 (JAVA)' 카테고리의 다른 글
JAVA 백준 4134 다음 소수 (약수, 배수와 소수 2) (0) | 2024.07.02 |
---|---|
JAVA 백준 13241 최소공배수 (약수, 배수와 소수 2) (0) | 2024.07.02 |
JAVA 백준 2751 수 정렬하기 2 (정렬) (0) | 2024.07.02 |
JAVA 백준 24266 알고리즘 수업 - 알고리즘의 수행 시간 5 (시간복잡도) (0) | 2024.07.02 |
JAVA 백준 24265 알고리즘 수업 - 알고리즘의 수행 시간 4 (시간복잡도) (0) | 2024.07.01 |