~cpp #include <stdio.h> void swap(int* x,int* y); int gcd(int a, int b); int main() { int x,y; // x, y값을 입력 받는다. printf("x = "), scanf("%d",&x); printf("y = "), scanf("%d",&y); // GCD를 출력한다. printf("GCD is %d\n",gcd(x,y)); return 0; } int gcd(int a, int b) { //a>b로 바꾼다. if( a < b ) swap(&a,&b); // 0으로 나누기 방지 if(b==0) return a; //재귀 if(gcd(b, a % b) == 0) return a % b; else return gcd(b, a % b); } void swap(int* x,int* y) { int tmp; tmp = *x; *x = *y; *y = tmp; }