[c]代码库
#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;
}
[代码运行效果截图]