第十一周OJ(5)求两个整数的最大公约数和最小公倍数

来源:互联网 发布:阿里云怎么备案域名 编辑:程序博客网 时间:2024/05/01 08:02


*\

烟台大学计算机与控制工程学院

All rights reserved.

作者:汪莹莉

完成日期:2016年11月14日

题目描述

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。

输入

两个数

输出

最大公约数 最小公倍数

样例输入

6 15

样例输出

3 30

提示

 主函数已给定如下,提交时不需要包含下述主函数


/*  C代码   */


int main()


{

    int n,m,gys,gbs;

    int gcd(int a, int b);

    int lcm(int a, int b);

    scanf("%d%d",&n,&m);

    gys=gcd(n,m);

    gbs=lcm(n,m);

    printf("%d %d\n",gys,gbs);

    return 0;

}

/*  C++代码   */

int main()

{

    int n,m,gys,gbs;

    int gcd(int a, int b);

    int lcm(int a, int b);

    cin>>n>>m;

    gys=gcd(n,m);

    gbs=lcm(n,m);

    cout<<gys<<" "<<gbs<<endl;

    return 0;

}


程序:

#include <stdio.h>
int main()
{
    int n,m,gys,gbs;
    int gcd(int a, int b);
    int lcm(int a, int b);
    scanf("%d%d",&n,&m);
    gys=gcd(n,m);
    gbs=lcm(n,m);
    printf("%d %d\n",gys,gbs);
    return 0;
}
int gcd(int x,int y)
{
    int r;
    while(y>0)
    {
        r=x%y;
        x=y;
        y=r;
    }
    return x;
}

int lcm(int x,int y)
{
    return ((x*y)/gcd(x,y));
}

运行结果;

知识点总结:借用辗转相除法求最大公约数的方法

学习心得:最小公倍数与最大公约数的乘积为两数的乘积,即(a,b)[a,b]=ab;//(a,b)为最大公约数,[a,b]为最小公倍数



1 0
原创粉丝点击