본문 바로가기

알고리즘 · 코딩

[프로그래머스] 최대공약수와 최소공배수

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/12940

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


C++ 풀이

#include <string>
#include <vector>
using namespace std;

int findGCD(int &n, int &m) {
	for (int i = ((n < m) ? n : m); i >= 1; i--) {
		if ((n % i == 0) && (m % i == 0))
			return i;
	}
	return 1;
}

int findLCM(int &n, int &m) {
	int i = (n < m) ? m : n;
	while ((i % n != 0) || (i % m != 0))
		i++;
	return i;
}

vector<int> solution(int n, int m) {
	vector<int> answer;
	answer.push_back(findGCD(n, m)); //최대공약수 찾기
	answer.push_back(findLCM(n, m)); //최소공배수 찾기
	return answer;
}

 

 

 

반응형