https://www.acmicpc.net/problem/9613
#include<stdio.h>
#include<stdlib.h>
int gcd(int a,int b) // 최대공약수 함수
{
return b?gcd(b,a%b):a;
}
int main(void)
{
int line[100]; // 각 줄마다 입력하는 배열
int a,b,c,d,i,j;
long long int x=0; // 출력할 값
scanf("%d",&a); // 줄 수 입력
for(b=0;b<a;b++) // 줄 수 만큼 반복문을 돌림
{
scanf("%d",&c); // 각 줄마다 입력할 정수의 수를 입력
for(d=0;d<c;d++) // 입력할 수 만큼 배열에 입력
scanf("%d",&line[d]);
for(i=0;i<c-1;i++) // 배열의 값들이 모두 비교할 수 있도록
{ 이중 for문을 만듬
for(j=i+1;j<c;j++)
x+=gcd(line[i],line[j]);
}
printf("%lld\n",x);
x=0;
}
return 0;
}
gcd함수를 만들어 최대공약수를 구할 수 있게 함
가장 바깥쪽에 있는 반복문은 줄을 바꾸는데 사용하고
두 번째 반복문은 각 줄 마다 입력하는 수 만큼 정수를 배열에 입력한다.
세번재 반복문은 배열의 값이 모두 최대공약수를 구할 수 있도록 이중 반복문을 만듬 그다음 x변수에 각 최대공약수를 더했다.
출력하고 x는 초기화를 했다.