반응형
#C언어 #재귀호출 #최대공약수 #유클리드호제법
C언어: 유클리드 호제법을 이용한 최대공약수 구하기
1.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a,b, m,n;
printf("두 정수 입력: ");
scanf("%d %d",&a,&b);
m=a; n=b;
while (m!=n){
if (m>n)
m=m-n;
else
n=n-m;
}
printf("%d, %d의 최대공약수 = %d\n",a, b, m);
return 0;
}
2.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int gcd(int a, int b)
{
int c;
while (b)
{
c = a % b;
a = b;
b = c;
}
return a;
}
int main()
{
int a, b;
printf("두 정수 입력: ");
scanf("%d %d", &a, &b);
printf("%d, %d의 최대공약수 = %d\n", a, b, gcd(a,b));
return 0;
}
3. 재귀호출 이용
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int gcd(int a, int b)
{
return b ? gcd(b, a % b) : a;
}
int main()
{
int a, b;
printf("두 정수 입력: ");
scanf("%d %d", &a, &b);
printf("%d, %d의 최대공약수 = %d\n", a, b, gcd(a,b));
return 0;
}
반응형
'C_C++ > 기초_알고리즘_문제' 카테고리의 다른 글
(C언어) 이진 검색(binary search) (1) | 2022.11.18 |
---|---|
(C언어) 소인수 분해 (0) | 2022.11.16 |
(기초 알고리즘) 홀수인지 짝수인지 판단하기 (0) | 2022.11.09 |
(기초 알고리즘) 배열의 요소를 거꾸로 출력하기 (2) | 2022.11.09 |
(기초 알고리즘) 구구단 출력 (0) | 2022.11.08 |