首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

写了个求最大公约数和最小公倍数的程序,该怎么解决

2012-03-18 
写了个求最大公约数和最小公倍数的程序intf1(inta,intb){intifor(i2i ai++)if(a%i0&&b%i0)break

写了个求最大公约数和最小公倍数的程序
int   f1(int   a,int   b)
{int   i;
for(i=2;i <=a;i++)
if(a%i==0&&b%i==0)   break;
if(i> =a+1)   printf( "error\n ");
else   return(i);
}
main()
{int   f1(int   a,int   b);
int   x,y,m,p;
printf( "input   two   number: ");
scanf( "%d%d ",&x,&y);
m=f1(x,y);
printf( "%d\n ",m);
}
程序如上
因为刚学到函数
要用函数来写
第一个函数(就是求公约数的)会编
但是第二个就不知道怎么编了
想了好久都搞不定
高手帮帮忙

[解决办法]
第二方法也可加速:
int greatestCommonDivisor2(int a, int b)
{
int gcd = 1, i = 2;
int vmin = (a > b)? b : a;
while(i < vmin)
if( a%i==0 && b%i ==0)
{
gcd *= i;
vmin /= i;
a /= i;
b/= i;
i =2;
}
else
i++;
return gcd;
}

热点排行