프로그래밍 알고리즘

[정올 1002] 최대공약수, 최소공배수

꾸준한사람 2022. 12. 14. 20:40
반응형

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=281&sca=99 

 

JUNGOL

 

www.jungol.co.kr

 

CPP 컴파일러에서 C 스타일로 작성하였습니다.

#include <stdio.h>

int N, arr[11], gcd, lcm; //gcd: 최대공약수, lcm: 최소공배수

//x, y의 최대공약수를 구하는 함수
int getgcd(int x, int y) {
	int i = 1, gcd = 1;
	for (; i <= x; i++)
		if (x % i == 0 && y % i == 0) gcd = i;
	return gcd;
}

int main(void) {
	//입력
	scanf("%d", &N);
	for (int i = 0; i < N; i++) 
		scanf(" %d", arr + i);
    	//초기화
	gcd = lcm = arr[0];
  	//계산
	for (int i = 1; i < N; i++)	{
		gcd = getgcd(gcd, arr[i]);
		lcm = (lcm * arr[i]) / getgcd(lcm, arr[i]);
	}
	printf("%d %d\n", gcd, lcm);
	return 0;
}

 

반응형

'프로그래밍 알고리즘' 카테고리의 다른 글

[정올 1078] 저글링 방사능 오염  (0) 2022.12.14
[정올 1060] 최소비용신장트리  (0) 2022.12.14
[정올 1053] 피보나치  (0) 2022.12.14
[정올 1021] 장난감 조립  (0) 2022.12.14
[정올 1006] 로봇  (0) 2022.12.14