求C语言程序

[复制链接]
查看11 | 回复5 | 2008-5-29 15:07:02 | 显示全部楼层 |阅读模式
求两个整数的最大公约数和最小公倍数,例如:60和50的最大公约数是10、最小公倍数是300。从键盘输入两个整数,输出它们的最大公约数和最小公倍数;

回复

使用道具 举报

千问 | 2008-5-29 15:07:02 | 显示全部楼层
/*最大公约数---递归法实现---代码简结效率高*/int recur(int x,int y){
if(x<y) recur(y,x);
else if(x%y!=0) recur(y,x%y);
else return y;}/*最小公倍数=两个数的乘积除以两者的最大公约数*/int lcm(int a,int b){
return a*b/recur(a,b);}
回复

使用道具 举报

千问 | 2008-5-29 15:07:02 | 显示全部楼层
/*VC编译成功*/int GrComDiv(int dividend ,int divisor)/* compute and return dividend and divisor's greadest common divisor*/{ int temp;if(dividend<divisor) {temp=dividend;divide
回复

使用道具 举报

千问 | 2008-5-29 15:07:02 | 显示全部楼层
最大公约数,可以用辗转相除法来得到结果,程序如下:int gcd( int m, int n ){ int t = 0, r = 0; if(m < n) {t = n;n = m;m = t; } do{r = m%n;m = n;n = r; }while(r);
回复

使用道具 举报

千问 | 2008-5-29 15:07:02 | 显示全部楼层
main () { int x y m gbs gys n t; n=x; t=y; { m=n/t; n=t; t=m; } while(m!=0) gys=y gbs=x*y/t }
回复

使用道具 举报

千问 | 2008-5-29 15:07:02 | 显示全部楼层
ynixk19 的答案。。妙哉啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行