您的位置:首页 > 编程语言 > C语言/C++

C++程序设计:求最大公约数和最小公倍数的算法

2015-08-30 20:06 507 查看

求最大公约数和最小公倍数的算法

最大公约数([b]记为(a,b):指两个或多个整数共有约数中最大的一个,求最大公约数有多种方法,常见的有质因数分解法、短除法辗转相除法更相减损法。编程思想:主要看a/b是否为零,假如为零则最小的为最大公约数,不为零则他们相除的余数就是最大公约数。[/b]

关于最小公倍数与最大公约数,我们有这样的定理:

(a,b)[a,b]=ab(a,b均为整数)

最小公倍数(

记为[a,b]):

两个或多个整数公有的倍数叫做它们的公倍数,即

两个或多个整数的公倍数里最小的那一个叫做它们的最小公倍数。

编程思想:在求出最大公约数的基础上,利用二者的关系式求出最小公倍数。

C++程序实现的程序代码:

#include<iostream>

using namespace std;

int main()

{

int x, y;

int GCD(int,int);

int LCM(int,int);

cin >> x >> y;

cout << "最大公约数为:" << GCD(x,y) << endl;

cout << "最小公倍数为:" << LCM(x, y) << endl;

system("pause");

return 0;

}

int GCD(int a,int b)

{

int c = 0;

if (a>b)

{

if (a / b == 0) c = b;

else c = a%b;

}

else

{

if (b / a == 0) c =a;

else c = b%a;

}

return c;

}

int LCM(int m, int n)

{

int p = GCD(m,n);

int q = m*n / p;

return q;

}

程序结果验证:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: