반응형
    
    
    
  
문제).
두 정수의 최대 공약수 및 최소 공배수를 구하는 함수를 만드시오.
답은 아래에... ↓
스스로 풀어보시고... ↓
아래 답과 비교해보세요. ↓
1. 최대공약수(Greatest Common Divisor) - looping으로 풀기
/* 
* 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘을 활용한 
* 최대 공약수 계산하는 함수
*/
int GDC(int x, int y)
{
    int tmp;
    while(y != 0) {
        tmp = x % y;
        x = y;
        y = tmp;
    }
    return x;
}
2. 최대공약수(Greatest Common Divisor) - 재귀호출함수로 풀기
/* 
* 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘을 활용한 
* 최대 공약수 계산하는 함수
*/
int GDC(int x, int y)
{
    if(y == 0) {
        return x;
    }
    return GDC(y, x % y);
}
3. 최소 공배수 (Least Common Mulitple)
/* 
* least common multiple
*/
int LCM(int x, int y)
{
	return x * y / GCD(x, y);
}
반응형
    
    
    
  'C언어 문제 > 수학 문제' 카테고리의 다른 글
| 연립방정식 x, y의 값을 구하시오. (0) | 2019.12.18 | 
|---|---|
| 소수 여부 판단하는 알고리즘 (제곱근 범위 나누기법) (0) | 2019.12.04 | 
| 입력한 자연수보다 작은 모든 소수를 출력하기 (0) | 2019.11.19 | 
| 2차 방정식의 근을 구하시오. (1) | 2019.11.06 | 
| 주사위를 n번 던져 무중복 합이 k인 경우 나열하기 (0) | 2019.11.04 |