C语言——求最大公约数和最小公倍数的简单程序
首先我们输入两个整数m和n,小的数赋值给m,大的数给n。先找n的约数,用一个中间量i代替m,从i开始,如果n%i==0,则说明n,m的最大公约数就是m,否则执行第3步,i自减1,再执行n%i,判断n%i==0,如果是说明n能被i整除;执行第4步,否则再次执行第3步,判断m%i是否等于0,如果是说明n和m能同时被i整除,最大公约数为i;否则执行第3步,最小公倍数比较容易求,只要两数相乘,然后除以最大公约数就可以得到。
怎样用C语言程序编程实现m和n的最大公约数和最小公倍数,用do-while循环
从键盘接收两个int型整数m和n,先求出最大公约数,再由"m/最大公约数*n"来求得最小公倍数。代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int m,n,g;
printf("Input m & n(int m,n>0)...\n");
if(scanf("%d%d",&m,&n)!=2 || m<1 || n<1){//输入两个整数,保证大于0
printf("Input error, exit...\n");
return 0;
}
g = (m<n ? m : n)+1;
do{//用穷举法求GCD
g--;
}while(m%g || n%g);
printf("\nThe GCD is %d\nThe LCM is %d\n",g,m/g*n);
return 0;
}
c语言如何求最小公倍数
在C语言中,可以使用以下方法来求最小公倍数(LCM,Least Common Multiple):
1. 首先,编写一个函数来计算两个数的最大公约数(GCD,Greatest Common Divisor)。常见的求解最大公约数的方法有欧几里得算法(辗转相除法)或更优化的算法,可以选择适合自己的方法。
以下是使用欧几里得算法求最大公约数的示例代码:
```c
// 求最大公约数函数
int gcd(int a, int b) {
if(b == 0)
return a;
else
return gcd(b, a % b);
}
```
2. 编写一个函数来计算两个数的最小公倍数,使用最大公约数来计算。
```c
// 求最小公倍数函数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
```
在这个函数中,我们可以利用两个数的乘积除以它们的最大公约数,得到最小公倍数。
3. 在主程序中调用这两个函数来求解最小公倍数。
```c
#include <stdio.h>
int gcd(int a, int b) {
if(b == 0)
return a;
else
return gcd(b, a % b);
}
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int num1, num2;
printf("请输入两个正整数:");
scanf("%d%d", &num1, &num2);
printf("最小公倍数为:%d\n", lcm(num1, num2));
return 0;
}
```
运行程序后,用户需输入两个正整数,程序将返回它们的最小公倍数。

