求最小公约数
写一个函数,分别求俩个整数的最小公约数!
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++; } } }完整的最小公倍数也有的 参考下吧