读书人

写了个求最大公约数和最小公倍数的程序

发布时间: 2012-03-18 13:55:39 作者: rapoo

写了个求最大公约数和最小公倍数的程序
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;
}

读书人网 >C++

热点推荐