백준 9613번 문제 GCD합 구하기

준준준맨·2021년 8월 26일
0

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는 초기화를 했다.

profile
대학생

0개의 댓글

관련 채용 정보