【C语言求两个数的最小公倍数】

问题分析:
输入两个正整数m n,求其最小公倍数(LCM),对于最小公倍数,理解为如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个正整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,有两种方法:
①通常会借助最大公约数来辅助计算。
最小公倍数=两数的乘积/最大公约(因)数,解题时先求出最大公约数后再求出。

②根据定义进行算法设计。要求任意两个正整数的最小公倍数即求出一个最小的能同时被两整数整除的自然数。
思路:
首先,对于输入的两个正整数m和n,每次输入的顺序可能不同,所以要对整数所m和n进行大小比较排序,规定变量m中存储大数、变量n中存储小数。

其次求两个数的最小公倍数,如果大数m是小数n的倍数,那么大数m为要求的数;如果不是,可以直接从大数m开始遍历,依次向后递增直到找到第一个能同时被两数整除的数为止,所以定义一个变量i,i从m开始,找出第一个能同时被两整数整除的自然数,并将其输出。
注意:
循环找到第一个满足条件的i值后,循环没必要继续下去,所以用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中存储小数/
{
temp = m;
m = n;
n = temp;
}
for(i=m; i>0; i++) /从大数开始寻找满足条件的自然数/
if(i%m0 && i%n0)
{/输出满足条件的自然数并结束循环/
printf(“The LCW of %d and %d is: %d\n”, m, n, i);
break;
}
return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44436675/article/details/109792924
今日推荐