当前位置: 代码迷 >> C语言 >> [求助]一个求最大公约数与最小公倍数的程序问题
  详细解决方案

[求助]一个求最大公约数与最小公倍数的程序问题

热度:228   发布时间:2006-01-27 08:39:00.0
[求助]一个求最大公约数与最小公倍数的程序问题
int t1(int m,int n)
{int temp;
while(!m>=n&&m%n==0)
{if(m<n)
{temp=n;n=m;m=temp;}
temp=m%n;
m=n;
n=temp;
}return n;
}
int t2(int m,int n)
{int x,y,z,a;
x=t1(m,n);
y=m/x;z=n/x;
a=x*y*z;
return a;
}
main()
{int m,n,yue,bei;
printf("请输入两个数:\n");
scanf("%d%d",&m,&n);
printf("m=%d,n=%d\n",m,n);
yue=t1(m,n);
bei=t2(m,n);
printf("%d和%d的最大公约数为%d\n,最小公倍数为%d",m,n,yue,bei);
getch();
}
为什么运行结果不对呢?
搜索更多相关的解决方案: 最大公约数  最小公倍数  

----------------解决方案--------------------------------------------------------
我知道错在那里了
while(!m>=n&&m%n==0)应改为while(!(n>=n&&m%n==0))
这样就对了
----------------解决方案--------------------------------------------------------

……楼主好有意思……自问自答的说,强


----------------解决方案--------------------------------------------------------
这个叫辗除法
----------------解决方案--------------------------------------------------------
3楼的更有意思。我都没有发觉。哈哈
----------------解决方案--------------------------------------------------------
  相关解决方案