求教
写两个函数,分别求两个整数的最大公约数和最小公倍数.
----------------解决方案--------------------------------------------------------
gcd(a,b)用辗转反侧法求最大公约数
然后最小公倍数lcm(a,b)=(a*b/gcd(a,b))
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int a,b,m,n,max,min,t,p;
scanf("%d%d",&a,&b);
m=a;n=b;
if(m>n)
{ t=m;
m=n;
n=t;
}
while(m)
{
p=n%m;
n=m;
m=p;
}
max=n;
min=a*b/max;
printf("%d,%d",max,min);
}
----------------解决方案--------------------------------------------------------
欧拉是万能的!!卡卡卡卡……
----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{
int a,b,x,y;
scanf("%d%d",&a,&b);
if(a>b)
x=a;
else
x=b;
for(x;x<=a*b;x++)
if(x%a==0&&x%b==0)break;
if(a>b)
y=b;
else
y=a;
for(y;y>1;y--)
if(a%y==0&&b%y==0)break;
printf("最小公倍数是%d\n最大公约数是%d",x,y);
}
----------------解决方案--------------------------------------------------------
2楼的精简一些
5楼的算法要改进哦!
----------------解决方案--------------------------------------------------------