分别用穷举法、辗转相除法计算两个数的最大公约数,如果既要计算最大公约数,又要计算最小公倍数,怎样修改程序?
穷举法:
#include<stdio.h>
int main()
{
int m,n,i;
scanf("%d%d",&m,&n);
for(i=m; i>=1; i--)
{
if(m%i==0&&n%i==0)
return i;
}
printf("%d",i);
return 0;
}
辗转相除法:
#include<stdio.h>
int main()
{
int m,n,r,max,min;
scanf("%d%d",&m,&n);
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
min=n;
printf("%d",min);
return 0;
}
如果既要计算最大公约数,又要计算最小公倍数,怎样修改程序?
#include<stdio.h>
int main()
{
int m,n,r,max,min;
scanf("%d%d",&m,&n);
max=m*n;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
min=n;
max=max/n;
printf("%d,%d",max,min);
return 0;
}