๋ฐ์ํ
๋ฌธ์
์์ ์ ์ n๊ฐ๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ๋ฅํ ๋ชจ๋ ์์ GCD์ ํฉ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ t (1 โค t โค 100)์ด ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ์์ ๊ฐ์ n (1 < n โค 100)๊ฐ ์ฃผ์ด์ง๊ณ , ๋ค์์๋ n๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์๋ 1,000,000์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ๊ฐ๋ฅํ ๋ชจ๋ ์์ GCD์ ํฉ์ ์ถ๋ ฅํ๋ค.
์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ์ถ | ์ ๋ต | ๋งํ ์ฌ๋ | ์ ๋ต ๋น์จ |
---|---|---|---|---|---|
1 ์ด | 128 MB | 33868 | 13838 | 11355 | 41.641% |
https://www.acmicpc.net/problem/9613
ํ์ด
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GCD์ํฉ {
public static void main(String[] args) throws IOException {
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for(int i=0; i<t; i++){
String[] arr = br.readLine().split(" ");
long answer = 0;
int n = Integer.parseInt(arr[0]);
int[] intArr = new int[n];
for(int j=0; j<intArr.length; j++){
intArr[j] = Integer.parseInt(arr[j+1]);
}
for(int j=0; j<intArr.length-1; j++){
for(int k= j+1; k<intArr.length; k++){
answer += gcd(intArr[j], intArr[k]); //๋ชจ๋ ์ผ์ด์ค๋ฅผ ์ ๋ถ ํ์ธํ๋ค.
}
}
System.out.println(answer);
}
br.close();
}
public static int gcd(int a, int b){
while (b != 0){
int r = a % b;
a = b;
b = r;
}
return a;
}
}
๋ฐ์ํ