题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:
什么是最大公约数和最小公倍数?
最大公约数:
最大公约数是指两个或多个整数共有的最大约数。
比如12 和16,12的约数有(1,2 ,3,4,6,12),16的约数有(1,2,4,8,16)公约数就是两个数共同的约数,(1,2,4)而公约数中4就是最大公约数。
最小公倍数
最小公倍数是指两个或多个整数共有的最小倍数。
同样举个例子,比如12和16,我们将163=48,124=48,这是两个数第一次有倍数相等关系,就叫48是最小公倍数
⒉.程序源代码
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int x,y,z,i,j;
printf("输入两个数字:");
scanf("%d %d",&x,&y);
if(x>y) {
z=x;
x=y;
y=z;
}
i=x;
while(1) {
if(x%i==0&&y%i==0) {
j=i;
break;
} else {
i--;
}
}
printf("最大公约数:%d\n",j);
printf("最小公倍数:%d",x*y/j);
return 0;
}
运行截图: