首页 软件代码

两个数最大公约数和最小公倍数


题目:输入两个整数,输出其最大公约数和最小公倍数。

第一种方法:

#include<stdio.h>
void main()
{
    int x,i,y,t;
    scanf("%d %d",&x,&y);
    t=x<y?x:y;
    for(i=t;i>0;i--)
    {
    if((x%i==0)&&(y%i==0))
    {printf("最大公约数%d\n",i);
    break;
    }
    }
    t=x>y?x:y;
    for(i=t;;i++)
    {
    if((i%x==0)&&(i%y==0))
    {printf("最小公倍数%d\n",i);
    break;
    }
    }
    
}

第二种方法(辗转相除法):

#include<stdio.h>
void main()
{
    int x,i,y,t;
    scanf("%d %d",&x,&y);
    i=x*y;
    if(y>x)
    {
        t=y;
        y=x;
        x=t;
    }
while(t=x%y)
{
    x=y;
    y=t;
}
printf("最大公因数为%d\n",y);
t=i/y;
printf("最小公倍数%d\n",t);
}




文章评论