求最大公因数用到了辗转相除法
求最小公倍数用到了公式法:由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积
#include<stdio.h>
int main()
{
int M ,N,R;//R用来存放余数
int max,small,big;//分别用来存放最大公因数,最小公倍数,M与N的乘积
scanf("%d %d",&M,&N);//读入M,N
big=M*N;//把MN的乘积放在big中,等会算最小公倍数用到
do
{
R=M%N;//辗转相除法,计算余数
if(R==0){//M能被N整除的时候,最大公因数就为N;
max=N;
break;//只有余数为零的时候才能得出最大公因数,才能break离开循环
}
M=N;N=R;//把除数的值,给被除数,把余数的值给除数,等于说下一轮循环用这一轮的除数除以这一轮的余数
}while(1);
printf("%d %d",max,big/max);//两个数的最小公倍数就等于两个数的积除以最大公因数
return 0;
}
MOMODA