【C语言程序设计】C语言求最小公倍数(详解版)!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【C语言程序设计】C语言求最小公倍数(详解版)!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1889字,纯文字阅读大概需要3分钟。
内容图文
![【C语言程序设计】C语言求最小公倍数(详解版)!](/upload/InfoBanner/zyjiaocheng/596/cd737ba17f3d4524b6d566fb924f2777.jpg)
问题描述
求任意两个正整数的最小公倍数(LCM)。
问题分析
最小公倍数(Least Common Multiple,LCM),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公约数来辅助计算。
最小公倍数=两数的乘积/最大公约(因)数,解题时要避免和最大公约(因)数问题混淆。
对于最小公倍数的求解,除了利用最大公约数外,还可根据定义进行算法设计。要求任意两个正整数的最小公倍数即,求出一个最小的能同时被两整数整除的自然数。
算法设计
对于输入的两个正整数m和n每次输入的大小顺序可能不同,为了使程序具有一般性,首先对整数所m和n进行大小排序,规定变量m中存储大数、变量n中存储小数。
输入的两个数,大数m是小数n的倍数,那么大数m即为所求的最小公倍数;若大数m不能被小数n整除则需要寻找一个能同时被两数整除的自然数。
从大数m开始依次向后递增直到找到第一个能同时被两数整除的数为止,所以循环变量i的初值为寻找第一个能同时被两整数整除的自然数,并将其输出。需要注意的是,在找到第一个满足条件的i值后,循环没必要继续下去,所以用break来结束循环。
在上面的分析过程中没有提到循环变量的终止条件,因i的最大值不能确定,像这种终止条件不确定的情况如何来表示?方法有两种:
第一,可以把判定条件表示成循环变量满足的基本条件,如本例终止条件可表示成i>0;
第二,终止条件省略不写,利用循环体中的语句结束循环,如在找到第一个满足条件的自然数时利用break语句结束循环。
下面是完整的代码:
#include<stdio.h> int main() { int m, n, temp, i; printf("Input m & n:"); scanf("%d%d", &m, &n); if(m<n) /*比较大小,使得m中存储大数,n中存储小数*/ { /*交换m和n的值*/ temp=m; m=n; n=temp; } for(i=n; i>0; i--) /*按照从大到小的顺序寻找满足条件的自然数*/ if(m%i==0 && n%i==0) {/*输出满足条件的自然数并结束循环*/ printf("The GCD of %d and %d is: %d\n", m, n, i); break; } return 0; }
运行结果:
Input m & n:6 24
The LCW of 24 and 6 is: 24
![【C语言程序设计】C语言求最小公倍数(详解版)! - 文章图片](/upload/getfiles/0001/2021/4/29/20210429092736465.jpg)
?
不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~
【值得关注】我的 编程学习交流俱乐部 !【点击进入】
全栈程序员正在等你加入~
![【C语言程序设计】C语言求最小公倍数(详解版)! - 文章图片](/upload/getfiles/0001/2021/4/29/20210429092736570.jpg)
?
内容总结
以上是互联网集市为您收集整理的【C语言程序设计】C语言求最小公倍数(详解版)!全部内容,希望文章能够帮你解决【C语言程序设计】C语言求最小公倍数(详解版)!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。