关于最大公约数的困扰
int yue(int x,int y){ int i,t;
int n;
if (x>=y) t=y;
else t=x;
for(i=1;i<=t;i++)
{ (x%i==0)&&(y%i==0);
n=i;
}
return(n);
}
以上是一个求最大公约数的函数,请问大虾错在哪里?我老运行不出来
论坛里有这样的例子,求最大公约数和最小公倍数的函数,在C语言中用辗转相除法比较多.
呵呵,我是刚看到的,以前也不知道.我转载一个.
比如:输入两个正整数m和n,求其最大公约数和最小公倍数。
程序源代码:
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 { temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}