【1131】C/C++经典程序训练1---最大公约数与最小公倍数



C/C++经典程序训练1---最大公约数与最小公倍数

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

输入两个整数,求它们的最大公约数与最小公倍数。

输入

输入两个整数,两个整数之间用空格分开。

输出

第一行输出最大公约数;
第二行输出最小公倍数。

示例输入

64
48

示例输出

16
192
此题虽然简单,但是要掌握应用的辗转相除法
#include <stdio.h>
int main()
{
    int   a,b,t,r,a1,b1,z;
    scanf("%d %d",&a,&b);//输入两个数
    if(a>b)
    {
        t=a;
        a=b;
        b=t;
    }//为两个数由小到大排序
    a1=a;
    b1=b;
    r=b%a;//r为b除以a的余数
    while(r!=0)
    {
        b=a;
        a=r;
        r=b%a;
    }//辗转相除法求最大公约数
    printf("%d\n",a);
    z=a1*b1;
    printf("%d\n",z/a);//两个数的最小公倍数  为它们的乘积  除以  它们的最大公约数
    return 0;
}

posted @ 2014-08-03 14:51  jiangyy  阅读(456)  评论(0编辑  收藏  举报