반응형
문제).
두 정수의 최대 공약수 및 최소 공배수를 구하는 함수를 만드시오.
답은 아래에... ↓
스스로 풀어보시고... ↓
아래 답과 비교해보세요. ↓
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 |