๐ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
์์)
1. 22 % 6 = 4 (๋๋จธ์ง)
2. 6 % 4 = 2
3. 4 % 2 = 0
-> gcd(6 , 22) = 2
๐ ๋๋จธ์ง ํฉ - ๋ฐฑ์ค 10986
https://www.acmicpc.net/problem/10986
๋ฌธ์
๋ ์์ฐ์ A์ B์ ๋ํด์, A์ ๋ฐฐ์์ด๋ฉด์ B์ ๋ฐฐ์์ธ ์์ฐ์๋ฅผ A์ B์ ๊ณต๋ฐฐ์๋ผ๊ณ ํ๋ค. ์ด๋ฐ ๊ณต๋ฐฐ์ ์ค์์ ๊ฐ์ฅ ์์ ์๋ฅผ ์ต์๊ณต๋ฐฐ์๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 6๊ณผ 15์ ๊ณต๋ฐฐ์๋ 30, 60, 90๋ฑ์ด ์์ผ๋ฉฐ, ์ต์ ๊ณต๋ฐฐ์๋ 30์ด๋ค.
๋ ์์ฐ์ A์ B๊ฐ ์ฃผ์ด์ก์ ๋, A์ B์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T(1 ≤ T ≤ 1,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ T๊ฐ์ ์ค์ ๊ฑธ์ณ์ A์ B๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ A, B ≤ 45,000)
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ T๊ฐ์ ์ค์ A์ B์ ์ต์๊ณต๋ฐฐ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์์๋๋ก ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
๐ ํต์ฌ ์์ด๋์ด
- a, b์ ์ต์๊ณต๋ฐฐ์ = a * b / gcd(a,b)
- gcd๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ผ๋ก ๊ตฌํ
gcd, gcd1, gcd2 ๋ชจ๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ๊ตฌํํ ๋ฉ์๋๋ค.
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
int lcm = a*b / gcd(Math.max(a,b),Math.min(a,b));
System.out.println(lcm);
}
}
static int gcd(int max, int min){
if(min == 0) return max;
return gcd(min,max % min);
}
static int gcd1(int max, int min){
int temp;
while(max % min != 0){
temp = max;
max = min;
min = temp % min;
}
return min;
}
static int gcd2(int max, int min){
int temp;
while(min != 0){
temp = max;
max = min;
min = temp % min;
}
return max;
}
}
๐ N๊ฐ์ ์ต์๊ณต๋ฐฐ์
int ans = arr[0];
for (int i = 1; i < N; i++) {
int a = Math.max(ans, arr[i]);
int b = Math.min(ans, arr[i]);
ans = (a * b) / gcd(a, b);
}
๐ N๊ฐ์ ์ต๋๊ณต์ฝ์
int ans = arr[0];
for (int i = 1; i < N; i++) {
int a = Math.max(ans, arr[i]);
int b = Math.min(ans, arr[i]);
ans = gcd(a, b);
}
์ฐธ๊ณ : Do it! ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉ ํ ์คํธ: ์๋ฐ ํธ - ๊น์ข ๊ด
์ฝํ ์ ๋ฆฌ ๊นํ๋ธ ๋งํฌ
GitHub - HyperAlgorithmStudy/BaekJoon: Do it! ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉ ํ ์คํธ ์คํฐ๋
Do it! ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉ ํ ์คํธ ์คํฐ๋. Contribute to HyperAlgorithmStudy/BaekJoon development by creating an account on GitHub.
github.com
๋๊ธ