Develop

[c] 최대공약수, 최소공배수, 서로소 구하기 (펌)

by hooni posted Apr 23, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
소스코드
#include<stdio.h>

main()
{
    int max, min,c,i,j,cdmin,csmax;
    for(;;)
    {
        printf("임의의값 2개중 1개를 입력하시오");
        scanf("%d", &max);
        printf("임의의값 2개중 나머지 1개를 입력하시오");
        scanf("%d", &min);
        if (max<min)
        {
            c=max;
            max=min;
            min=c;
            printf("MAX=%dMIN=%d\n",max, min );
        }
        else if (max>min)
            printf("max=%dmin=%d\n",max, min );
        else 
        {
            printf("같다.\n");
            break;
        }

        printf("최대공약수는 1을 최소공배수는 2를입력하시오");
        scanf("%d",&c);
        if (c==1)
        {
            for(i=1 ; i<=min ; i++)
            {
                if (min%i==0 && max%i==0)
                    cdmin=i;
            }
            if (cdmin==1)
                printf("서로소인수\n");
            else
                printf("최대공약수=%d\n",cdmin);
        }
        else
        {
            csmax=0;
            for(i=1 ; i<=999 ; i++)
            {
                for(j=1; j<=999 ; j++)
                {
                    if (min*i==max*j)
                    {
                        csmax=min*i;
                        break;
                    }
                }
                if (csmax!=0)
                    break;
            }
            printf("최소공배수=%d\n",csmax);
        }
        printf("계속할라믄 1번을 종료할라믄 2번을...");
        scanf("%d", &c);
        if(c!=1)
            break;
    }
}