greatest common divisor (최대공약수)
# 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;
}
}
}
'언어 > c언어' 카테고리의 다른 글
beakJ (0) | 2017.01.21 |
---|---|
BJ 2908 (0) | 2017.01.16 |
deck (0) | 2017.01.08 |
숫자 -> 문자열 , 문자열 -> 숫자 (0) | 2016.10.05 |
ver1 행렬 연산 + 메모리해제 (0) | 2016.10.02 |