如何使用C或C++求最大公约数最小公倍数
1、先求最大公约数:m,n作为形参,代表最开始的两个要相除的数,先将它们排序,这里将m作为大的数,n为小的那个数。在n即除数不为零的情况下进入循环,用大的那个数除以小的那个数,所得的余数赋给一个变量r。然后将除数赋给被除数,余数赋给除数(这步就是要让除数除以余数),然后将m返回,此时的m就是最大公约数。
2、再求最小公倍数:这里求最小公倍数是用的一个公式,即两数的乘积除以最大公约数就得到最小公倍数。此处的形参r为最大公约数。
3、主函数没什么好说的,就是调用两个函数,再作输出。
4、最后给出完整的源代码:
#include<iostream>
using namespace std;
int gcd(int m,int n)//求最大公约数
{
int r,t;
if(m<n)
{
t=m;
m=n;
n=t;
}
while(n!=0)
{
r=m%n;
m=n;
n=r;
}
return m;
}
int lcm(int m,int n,int r)
{
int t;
t=m*n/r;
return t;
}
int main()
{
int m,n,r,t;
cout<<"Enter m n:";
cin>>m>>n;
r=gcd(m,n);
t=lcm(m,n,r);
cout<<"GCD ="<<r<<endl
;
cout<<"LCM ="<<t<<endl;
return 0;
}
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。