310 215 86 如何求解最大公约数和最小公倍数!

来源:百度知道 编辑:UC知道 时间:2024/07/15 19:09:11
需要详细的解答!对于此类题目有简便方法更好!

先求出其中2个的最大公约数 比如 310 215 最大公约数是5
然后求 310 43 86 的最大公约数(其中的43是215除以5得到的)
是1
最小公倍数则 先求出2个的最小公倍数 比如310 215 最小公倍数是5×62×43
然后用 5×62×43和86求最小公倍数
是 5*2*31*43

#include<stdio.h>
#include<math.h>
int gys(int a,int b)
{
int t,c;
if(a<b)
{
t=a;
a=b;
b=t;
}

while((c=a%b)!=0)
{
a=b;
b=c;
}
return(b);
}
int gbs(int a,int b)
{
int c;
c=gys(a,b);
return(a*b/c);
}
void main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("最大公约数是:%d\n",gys(m,n));
printf("最小公倍数是:%d\n",gbs(m,n));
}

短除法