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;
}