C语言实现最大公约数与最小公倍数
创作时间:
作者:
@小白创作中心
C语言实现最大公约数与最小公倍数
引用
CSDN
1.
https://blog.csdn.net/weixin_63356609/article/details/140782311
本文将介绍如何使用C语言求解两个整数的最大公约数(Greatest Common Divisor,GCD)和最小公倍数(Least Common Multiple,LCM)。我们将使用辗转相除法来计算最大公约数,并基于最大公约数来计算最小公倍数。
求最大公约数
辗转相除法(首选,因为简单快捷)
思路:
- 将两整数求余
a % b = c - 如果
c = 0,则b为最大公约数 - 如果
c != 0,则a = b;b = c;继续从1开始执行 - 也就是说该循环的是否继续的判断条件就是
c是否为0
举例说明:
假设 a = 21,b = 28
c = a % b = 21 % 28 = 21,此时c = 21不为0- 执行
a = b,b = c,即a = 28,b = 21 c = a % b = 28 % 21 = 7,此时c = 7不为0- 执行
a = b,b = c,即a = 21,b = 7 c = a % b = 21 % 7 = 0,此时c = 0循环结束
求最小公倍数
最小公倍数计算公式: 最小公倍数 = 两个数之间的乘积 / 两个数之间的最大公因数
下面是完整的C语言程序实现:
#include <stdio.h>
int HCF(int, int); // 最大公约数函数声明
int LCD(int, int, int); // 最小公倍数函数声明
int main() {
int a, b, h, l;
printf("请输入两个数:");
scanf("%d%d", &a, &b);
h = HCF(a, b);
l = LCD(a, b, h);
printf("最大公约数是:%d\n最小公倍数是:%d", h, l);
return 0;
}
// 最大公约数函数实现
int HCF(int a, int b) {
int t, r;
if (b > a) {
t = b;
b = a;
a = t;
}
while ((r = a % b) != 0) {
a = b;
b = r;
}
return b;
}
// 最小公倍数函数实现
int LCD(int a, int b, int h) {
return (a * b / h);
}
运行结果:
热门推荐
肘关节痛是挂什么科看病
中性格的人是怎样的人,说一个人性格中性是什么意思
作为自由心灵显像的多元演剧开拓——论林兆华对中国话剧演剧学派的贡献
喝下一升瓶装水等于吃进24万颗微塑料,研究首次证实微塑料对人有害
南科大、深大等机构在量子计量学研究中取得重要进展
中国白酒消费第一大省:能喝掉600亿的白酒,江苏、山东排后面
水中微塑料危害大!但简单一步就能消除
水泡破皮了怎么办
周二赛事解析:水原FCVS首尔FC,大田市民VS金泉尚武
JDK7中HashMap使用头插法导致死循环的原因分析
颜值对恋爱有多大影响(如何评价恋人的颜值)
银行的金融市场交易风险控制措施有哪些?
国内口腔主要种植技术有哪些呢?微创/即拔即种/普通种植技术等
六味地黄丸和金匮肾气丸能同服吗
松鸭的养殖方法和注意事项
去法院开调查令需要什么材料
元宇宙基础设施包括哪些核心技术?
种植牙对医生资质有哪些具体要求?了解种植牙医生的专业资质标准
路由器多久关一次?感谢宽带师傅的提醒,难怪网速越来越慢
爸爸不给儿子交学费怎么办
急性腰背部扭伤怎么预防
机器人控制算法工程师需要具备哪些专业知识
高级双保险:日本社会文化中的“御三家”是怎么来的?
当传统生肖,遇上3D打印→
1979年,中国代表团带5美元去埃及卖军火,换回1.67亿美元
蚊子咬出来的疤怎么消除
抖腿是什么,有什么作用
长虹玻璃与钢化玻璃的区别及适用范围
交通事故责任划分不合理怎么办
为什么医生都推荐打鼾要用呼吸机?这几点你一定也想知道!