C 语言范例 - 求两数最小公倍数
用户输入两个数,输出这两个数的最小公倍数。
使用 while 和 if
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int n1, n2, min_lcm; printf("输入两个正整数: "); scanf("%d %d", &n1, &n2); // 判断两数较大的值,并赋值给 minMultiple min_lcm = (n1>n2) ? n1 : n2; // 条件为 true while(1) { if( min_lcm % n1 == 0 && min_lcm % n2 == 0 ) { printf("%d 和 %d 的最小公倍数为 %d\n", n1, n2, min_lcm ); break; } ++ min_lcm; } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 输入两个正整数: 18 56 18 和 56 的最小公倍数为 504
通过最大公约数计算
/** * file: main.c * author: 简单教程(www.twle.cn) */ #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\n", n1, n2, lcm); return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 输入两个正整数: 18 56 18 和 56 的最小公倍数为 504