求一问题最大公约数和最小公倍数的定律
求最大公约数和最小公倍数的定律
2010-12-23 09:06
程序代码:#include<stdio.h>
void main()
{
int gys(int,int);
int gbs(int,int);
int num1,num2,Gys,Gbs; //Gys是最大公约数,Gbs是最小公倍数。
printf("请你输入两个数:");
scanf("%d,%d",&num1,&num2);
Gys=gys(num1,num2);
Gbs=gbs(num1,num2);
if(Gys==1)
printf("没有最大公约数\n");
else
printf("两个数的最大公约数是%d\n",Gys);
printf("两个数的最小公倍数是%d\n",Gbs);
}
int gbs(int num1,int num2)//求两个数的最小公倍数。
{ int gys(int,int);
int Gbs,ys;
ys=gys(num1,num2);
Gbs=num1*num2/ys;
return(Gbs);
}
int gys(int num1,int num2)//求两个数的最大公约数。
{
int t,ys=1;//ys是余数,t是中间变量。
int i=2;
if(num1<num2)
{
t=num1;
num1=num2;
num2=t;
}
if(num1%num2==0)return num2;
else
{
while(1)
{
if((num1%i==0) && (num2%i == 0))
{
ys*=i;
num1=num1/i;
num2=num2/i;
}
if(i==num2)
return ys;
i++;
}
}
}

2010-12-23 10:47
2010-12-23 10:59

2010-12-23 11:00

2010-12-23 11:02

2010-12-23 11:06
2010-12-23 13:30
2010-12-23 13:50
2011-05-17 10:08
2011-05-29 15:53