C语言——求其最大公约数和最小公倍数 数学上的介绍: 方法一:辗转相除法 设有两整数m和n:m%n得余数c若c==0,则n即为两数的最大公约数若c != 0,,则m=n,n=c,再回去执行m%n最小公倍数=两整数的乘积÷最大公约数 代码实现: #include <stdio.h> int main() { int m,n,max,min,b,c; printf("请输入两个整数:\n"); scanf("%d%d",&m,&n); c=m%n; b=m*n; while(c!=0) { m=n; n=c; c=m%n; } max=n; min=b/max; printf("\n最大公约数为:%d\n最小公倍数为:%d\n",max,min); return 0; } 运行结果: 方法二:相减法 设有两整数m和n若m>n,则m=m-n若m<n,则n=n-m若m==n,则m(或n)即为两数的最大公约数若m != n,则再回去执行第一步最小公倍数=两整数的乘积÷最大公约数 代码实现: #include<stdio.h> int main() { int a , b , m , n; printf("请输入两个整数:\n"); scanf("%d%d",&m,&n); a = m; b = n; while (m != n) { if(m > n) { m = m - n; } else { n = n - m; } } printf("最大公约数为:%d\n最小公倍数为:%d\n",m,(a* b)/m); return 0; } 运行结果