
#include<stdio.h> |
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; |
} |



