#include int main() { printf("请任意输入两个整数:"); int m, n, min, max; scanf("%d%d", &m, &n); if (m == n) printf("%d与%d的最大公约数与最小公倍数均为%d.\n", m, n, n); else if (m > n) { min = n; max = m; } else if (m < n) { min = m; max = n; }/*以上语句作用是比较m,n的大小,将大的值给max,将小的值给min.*/ while (min >= 1)/*m和n至少有一个约数1*/{ if (m % min == 0 && n % min == 0){ printf("%d与%d的最大公约数为%d.\n", m, n, min); break; } /*一旦得到约数,立即跳出循环,以保证该数是最大的.*/ min--; }/*循环的作用是从m,n中小的值开始每次减一循环,直到得到公约数.*/ while(max<=999999999)/*找倍数时应该从m,n中较大的值每次加1,上限应很大以保证能找到*/{ if (max % m == 0 && max % n == 0){ printf("%d与%d的最小公倍数为%d.", m, n, max); break; } /*一旦得到公倍数,立即跳出循环,以保证该数是最小的.*/ max++; }/*循环的作用是从m,n中较大的值开始每次加一循环,直到得到公倍数.*/ return 0; }