#includestdio.h
创新互联公司致力于成都做网站、网站设计,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择创新互联公司,就选择了安全、稳定、美观的网站建设服务!
int gcd(int m, int n);
int lcd(int m, int n);
int main()
{
int a, b;
printf("输入两个正整数:");
scanf("%d%d", a, b);
printf("%d 和 %d 最大公约数为%d\n", a, b, gcd(a, b));
printf("最小公倍数为:%d\n", lcd(a, b));
}
int gcd(int m, int n)
{
int t;
if (mn)
{
t = m;
m = n;
n = t;
}
while (n != 0)
{
t = m%n;
m = n;
n = t;
}
return m;
}
int lcd(int m, int n)
{
int t;
t = m*n / gcd(m, n);
return t;
}
最大公倍数??
有最大公约数和最小公倍数,没有最大公倍数。
***************************
网友pbjhyl的说法有严重错误!
printf()函数不需要取地址。
这个程序有算法错误,最小公倍数=两个数之积 / 最大公约数
修改如下:
#include stdio.h
#include stdlib.h
int MinCommonMultiple(int m,int n)
{
int s,ys=1;
s=m*n;
while(ys)
{
ys=m%n;
m=n;
n=ys;
}
return s/m;
}
main()
{
int m,n;
int mincommonmultiple;
printf("Please enter the number mn:");
scanf("%d,%d",m,n);
mincommonmultiple=MinCommonMultiple(m,n);
printf("mincommonmultiple=%d\n",mincommonmultiple);
system("pause");
}
int fun1(int n1,int n2) //fun1利用fun2求出的最大公约数求最小公倍数
{int gbs1;
gbs1= n1*n2/fun2(n1,n2); //gbs1为最小公数=两数积除以最大公约数(fun2(n1,n2))
return(gbs1);
}
int fun2(int u,int v)
{int t,r;
if(vu) //如果uv,u,v互换 后面要用u/v,的大的出以小的
{t=u;u=v;v=t;}
while((r=u%v)!=0) //碾除法求最大公约数
{u=v;v=r;}
return(v);
}
main()
{int num1,num2,gbs;
printf("input 2 numbers:");
scanf("%d%d",num1,num2);
gbs=fun1(num1,num2);
printf("gbs=%d\n",gbs);
}