언어/c언어
greatest common divisor (최대공약수)
파아랑새
2017. 1. 14. 20:19
# include<stdio.h>
# define T 1
void findShare(int loadedNum1, int loadedNum2);
int main(void) {
int num1, num2;
printf("num1, num2 : ");
scanf_s("%d %d", &num1, &num2);
findShare(num1, num2);
return 0;
}
void findShare(int loadedNum1, int loadedNum2) {
int val1 = loadedNum1;
int val2 = loadedNum2;
int rem = 0; // 나머지
int quo = 0; // 몫
int temp = 0;
if (val1 == val2) { // case __1
printf("gcd(%d, %d) => %d \n", loadedNum1, loadedNum2, loadedNum2);
return; // end
}
if (val1 < val2) { // case __2
temp = val2;
val2 = val1;
val1 = temp;
}
while (T) {
quo = val1 / val2;
rem = val1 % val2;
if (rem == 0) {
printf("gcd(%d, %d) => %d \n", loadedNum1, loadedNum2, val2);
break;
}
else { // rem != 0
val1 = val2;
val2 = rem;
}
}
}