// 최대 공약수를 구하기 위한 프로그램
#include <iostream.h>
int a, b, input_a, input_b, temp_a, temp_b, gcd_num;
// 최대 공약수를 구하기 위해 int형 변수 a, b와
// 입력받을당시의 값을 유지하기 위한 input_a, input_b
// 임시 저장공간 temp_a, temp_b, 결과저장용 gcd_num 선언
// 최대 공약수를 구하기 위해 int형 변수 a, b와
// 입력받을당시의 값을 유지하기 위한 input_a, input_b
// 임시 저장공간 temp_a, temp_b, 결과저장용 gcd_num 선언
int gcd(int a, int b);
// 최대 공약수를 구하기 위한 사용자 정의 함수 선언
// 최대 공약수를 구하기 위한 사용자 정의 함수 선언
void main()
{
cout << "Input two numbers\n";
cin >> input_a >> input_b;
a = input_a, b = input_b;
// 최대 공약수를 구할 두 숫자를 입력 받는다
if(a<0||b<0) // 두 숫자 중 음수가 있으면 에러메시지를 출력
cout << "Error, minus number input!\n";
else
{
if (a > b) // 두 숫자중 큰 숫자를 gcd 함수 앞 인자로 가도록 설정
gcd_num = gcd(a, b);
else
gcd_num = gcd(b, a);
if(gcd_num == 1) // gcd_num이 1일 경우 최대공약수가 없다고 출력
{
cout << "No common\n";
}
else
{
cout << input_a << " and " << input_b;
cout << "'s greatest common divisor is " << gcd_num << "\n";
}
}
}
{
cout << "Input two numbers\n";
cin >> input_a >> input_b;
a = input_a, b = input_b;
// 최대 공약수를 구할 두 숫자를 입력 받는다
if(a<0||b<0) // 두 숫자 중 음수가 있으면 에러메시지를 출력
cout << "Error, minus number input!\n";
else
{
if (a > b) // 두 숫자중 큰 숫자를 gcd 함수 앞 인자로 가도록 설정
gcd_num = gcd(a, b);
else
gcd_num = gcd(b, a);
if(gcd_num == 1) // gcd_num이 1일 경우 최대공약수가 없다고 출력
{
cout << "No common\n";
}
else
{
cout << input_a << " and " << input_b;
cout << "'s greatest common divisor is " << gcd_num << "\n";
}
}
}
int gcd(int a, int b)
{
while (b!=0) // b가 0이 아닌 경우 루프 수행
{
temp_a = a, temp_b = b; // 임시 저장공간에 각 값을 저장
a = temp_b, b = (temp_a % temp_b);
// 결국 a = b, b = (a % b) 이다
}
return a; // b가 0이 되어 루프가 종료 되면 a값을 반환
}
{
while (b!=0) // b가 0이 아닌 경우 루프 수행
{
temp_a = a, temp_b = b; // 임시 저장공간에 각 값을 저장
a = temp_b, b = (temp_a % temp_b);
// 결국 a = b, b = (a % b) 이다
}
return a; // b가 0이 되어 루프가 종료 되면 a값을 반환
}
댓글 없음:
댓글 쓰기