第十一周 OJ总结<5>-求两个整数的最大公约数和最小公倍数

来源:互联网 发布:mac上的画结构图的软件 编辑:程序博客网 时间:2024/05/11 17:36


Copyright (c) 2016,

烟台大学计算机与控制学院 All ringts reserved.

 文件名称:OJ总结<5>-求两个整数的最大公约数和最小公倍数

作 者:王兴振

完成日期: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 gcd(int n,int m);
int lcm(int n,int m);
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 n,int m)
{
int t=n,i;
if (t>m)
t=m;
i=t;
for (i=t;i>=1;i--)
{
if (n%i==0 && m%i==0)
break;
}
return i;
}
int lcm(int n,int m)
{
int t=n,i;
if (t<m)
t=m;
i=t;
while (i<=m*n)
{
if (i%n==0 && i%m==0)
break;
i++;
}
return i;
}

总       结:

  两个数的求法一样,所以懂一个另一个也就会了。

  

1 0
原创粉丝点击