C 语言实例 - 求两数最小公倍数
用户输入两个数,求这两个数的最小公倍数。
实例 - 使用 while 和 if
#include <stdio.h>
int main()
{
int n1, n2, minMultiple;
printf("输入两个正整数: ");
scanf("%d %d", &n1, &n2);
// 判断两数较大的值,并赋值给 minMultiple
minMultiple = (n1>n2) ? n1 : n2;
// 条件为 true
while(1)
{
if( minMultiple%n1==0 && minMultiple%n2==0 )
{
printf("%d 和 %d 的最小公倍数为 %d", n1, n2,minMultiple);
break;
}
++minMultiple;
}
return 0;
}
运行结果:
输入两个正整数: 72 120 72 和 120 的最小公倍数为 360
实例 - 通过最大公约数计算
#include <stdio.h>
int main()
{
int n1, n2, i, gcd, lcm;
printf("输入两个正整数: ");
scanf("%d %d",&n1,&n2);
for(i=1; i <= n1 && i <= n2; ++i)
{
// 判断最大公约数
if(n1%i==0 && n2%i==0)
gcd = i;
}
lcm = (n1*n2)/gcd;
printf("%d 和 %d 的最小公倍数为 %d", n1, n2, lcm);
return 0;
}
运行结果:
输入两个正整数: 72 120 72 和 120 的最小公倍数为 360
C 语言实例
Jared
der***k_cui@163.com
结合上一个语言实例编写:
#include <stdio.h> int gcd(int m, int n){ //定义函数 if(m % n == 0) return n; else return gcd(n, m%n); //辗转相除法 } void main() { int a,b, t,lcm; printf("请输入两个数:"); scanf("%d%d",&a,&b); if(a < b) {t=a, a=b, b=t; } //确保 a>b t = gcd(a, b); // 递归调用 printf("%d和%d的最大公约数是:%d\n",a,b,t); lcm = (a * b)/ t; // 通过最大公约数t 计算最小公倍数 printf("%d和%d的最小公倍数是:%d",a,b,lcm); }运行结果:
Jared
der***k_cui@163.com