Problem Z: 최대 공약수 구하기

1632 단어

Problem Z: 최대 공약수 구하기


Description


두 수는 동시에 한 수에 의해 정돈될 수 있는데, 이 수가 바로 공약수이다.예를 들어 12와 20의 공약수는 1, 2, 4이다.그중 4는 12와 20의 최대 공약수이다.

Input


정수 두 개를 입력하고 쉼표로 구분합니다.

Output


이 두 수의 최대 공약수를 출력하다.

Sample Input


24,60

Sample Output


십이

이 문제는 궁거법과 전전상제법으로 최대 공약수를 구할 수 있는데, 그 중에서 전전상제법은 귀속을 사용하는 것과 귀속을 사용하지 않는 두 가지 형식을 사용할 수 있다.


자세한 법적 절차는 다음과 같습니다.

#include
int main(){
	int m,n,temp,commondivisor=1;
	scanf("%d,%d",&m,&n);
	// 
	if(m>n){
		temp=n;
	} 
	else
	temp=m;
	for(int i=temp;i>=1;i--){
		if(m%i==0&&n%i==0){
			commondivisor=i;
			break;
		}
	}
	printf("%d
",commondivisor); }

코드는 다음과 같이 반복 나누기 (반복) 를 사용합니다.

#include 
#include 
int getdivisor(int a, int b)
{
    int mod;
    if ((mod = a % b) == 0)
        return b;
    return getdivisor(b, mod);
}
int main()
{
    int m, n,ret;
    scanf("%d,%d", &m,&n);
    ret = getdivisor(m, n);
    printf("%d", ret);
    return 0;
}

코드는 다음과 같이 반복 제외 방식을 사용합니다.

#include 
#include 
int getdivisor(int a, int b)
{
    int mod=a % b;
    while (mod!=0)
    {
        a = b;
        b = mod;
        mod = a % b;
    }
    return b;
}
int main()
{
    int m, n,ret;
    scanf("%d,%d", &m,&n);
    ret = getdivisor(m, n);
    printf("%d", ret);
    return 0;
}```

좋은 웹페이지 즐겨찾기