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;
}
程序结果验证:
相关文章推荐
- 编译防火墙——C++的Pimpl惯用法解析
- C++中定义自己的头文件
- int * const p 与int const *p或者const int *p的区别
- 汉字的区码和位码怎么用C语言求出来的方法
- c++ 编译链接 相关【 原创 + 转载】
- 快速排序的C语言实现
- Java基础知识及和C语言的一些区别
- 就一个简单的大数计算
- LeetCode:ZigZag Conversion
- 通过实例浅析Python对比C语言的编程思想差异
- 简要对比C语言中三个用于退出进程的函数
- c++中的隐藏、重载、覆盖(重写)
- Effective C++ 条款24 若所有参数皆需类型转换,请为此采用non-member函数
- 对Visual Studio C++ hash_map严谨一点的测试
- C语言中的setlinebuf()、utmpname()、rewind函数使用
- Effective C++ 条款23 宁以non-member,non-friend替换member函数
- 【C/C++学院】0729-语音识别/Const关键字/字符串应用/内存分配以及处理海量数据
- C语言查看程序运行的时间
- 详解C语言中freopen()函数和fclose()函数的用法
- 《高质量的C/C++编程指南》读书笔记