问题:辗转相除法实现求最大公约数和最小公数的算法
代码如下:
#include<stdio.h>
int gys(int m,int n);
int gbs(int m,int n);
int main(void)
{
int a= 0,b = 0;
printf("please input a and b:");
scanf("%d%d",&a,&b);
printf("%d和%d的最大公约数:%d\t最小共倍数:%d\n",a,b,gys(a,b),gbs(a,b));
return 0;
}
int gys(int m,int n)
{
int r = 0;
while(n != 0)//辗转相除法
{
r = m% n;
m = n;
n = r;
}
return m;
}
int gbs(int m,int n)
{
return (m*n)/gys(m,n);
}