반응형
C 언어, 최대 공약수(GCD) 구하는 다양한 방법
글. 오상문 sualchi@daum.net
다음은 최대공약수를 구하는 세가지 방법을 보여주는 예제입니다.
#include <stdio.h>
// 나머지 연산 이용
int gcd1(int a, int b)
{
int i;
if (a > b) { i = a; a = b; b = i; }
for(i = a; i > 0; i--)
if(a % i == 0 && b % i == 0)
return i;
return 1;
}
// 빼기 연산 이용
int gcd2(int a, int b)
{
int i;
while(a != b) {
if(a > b)
a -= b;
else
b -= a;
}
return a;
}
// 유클리드 호제법
int gcd3(int a, int b)
{
if (b == 0)
return a;
return gcd3(b, a % b);
}
int main()
{
int n1 = 20, n2 = 12;
printf("%d, %d 최대공약수는 %d \n", n1, n2, gcd1(n2, n1));
printf("%d, %d 최대공약수는 %d \n", n1, n2, gcd2(n2, n1));
printf("%d, %d 최대공약수는 %d \n", n1, n2, gcd3(n2, n1));
return 0;
}
반응형
'C' 카테고리의 다른 글
C 언어, 10진 정수를 2진수로 출력하기 (0) | 2019.03.09 |
---|---|
C 언어, 달팽이 배열 출력하기 (0) | 2019.03.04 |
C 언어, 반대 부호 정수를 출력하는 다양한 방법 (0) | 2019.02.19 |
C 언어, 시작과 끝 단 입력받고 구구단 출력하기 (0) | 2019.02.14 |
C 언어, 가위바위보 게임 (0) | 2019.01.26 |