求最大公因数和最小公倍数(C++实现)
2024-09-01 22:24:35
求两个正整数之最大公因子的算法(辗转相除法)
最大公约数是指能同时整除它们的最大正整数
基本原理:两个数的最大公约数等于它们中较小的数和两数之差的最大公约数。
就如有 a = 122, b = 54,a与b 的最大公约数也是54 与(122 - 54)的最大公约数;
即有:
122 54
68 54
54 14
40 14
......
2 0
代码有:
int GreatestCommonDivisor(int a, int b)
{
int t;
if (a < b)
{
temp = a;
a = b;
b = t;
}
while (b != 0)
{
t = a % b;
a = b;
b = t;
}
return a;
}
求最小公倍数是可依靠最大公因数
设c是a与b的最大公因数
int LeastCommonMultiple (int a, int b)
{
int t = a * b /c;
return t;
}
最新文章
- XidianOJ 1020 ACMer去刷题吧
- Resharp最新破解方法
- 腾讯云TDSQL审计原理揭秘
- OS开发(Objective-C)常用库索引
- Linux 常用命令笔记
- Log4J 如何分开Logger输出
- POJ1008 1013 1207 2105 2499(全部水题)
- HashMap的使用方法及注意事项
- Navicat连接oracle,出现Only compatible with oci version 8.1 and&;amp;nb
- rwx读写执行对文件和目录的意义
- 【Android】Mac下Android Studio设置App启动页
- 一篇文章带你看懂AWS re:Invent 2018大会,揭秘Amazon Aurora
- Python:matplotlib绘制直方图
- Java之JavaWeb项目开发开始准备
- 快速排序的两种实现 -- 种轴partition : 比值partition(更精巧)
- nginx: [warn] duplicate MIME type ";text/html";错误
- 把object转成JSONObject JSON.toJSON
- 008.Zabbix多图展示
- python MQTT 出现TypeError: payload must be a string, bytearray, int, float or None.
- [动态库]动态库生成和使用以及Makefile编写