求最小公约数
写一个函数,分别求俩个整数的最小公约数!
int gcd(int a, int b)
{
int t;
while (b)
{
a %= b;
t = a, a = b, b = t;
}
return a;
}
是最大公约数

程序代码:#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++;
}
}
}
完整的最小公倍数也有的 参考下吧
