最小公倍数和最大公约数(点击打开链接):
思路:
两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和105的最大公约数是21;因为252 / 105 = 2余42,所以105和42的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至余数变为零。这时的
除数
就是所求的两个数的最大公约数。
代码如下:
#include<stdio.h>
void Max(int &x,int &y){
if(x<y){
int t=x;x=y;y=t;
}
}
int main(){int a,b;
while(~scanf("%d%d",&a,&b)){
int a1=a,b1=b;
while(a%b){
Max(a,b);
a=a%b;
Max(a,b);
}printf("%d %d\n",(a1*b1)/b,b);
} return 0;
}
3536

被折叠的 条评论
为什么被折叠?



