用C语言求两个数的最大公约数和最小公倍数
解题思路:定义两个函数GCD(最大公约数 greatest common divisor)和LCM(最d小公倍数 least common multiple),然后进行调用即可。
公约数:a和b对公约数的余数都为0
公倍数:公倍数对a和b的余数都为0,
或者a*b/公约数
#include<stdio.h>
int main()
{
int GCD(int x, int y ); //声明
int LCM(int x, int y ); //声明
int a, b ;
scanf_s ("%d,%d",&a,&b); //注意中间有一个逗号
printf("%d\n",GCD(a, b ));
printf("%d\n",LCM(a, b ));
return 0;
}
int GCD(int x, int y ) //定义GCD
{
int min, i ;
min =x >y ?y: x ;
for (i =min ;;i--)
if (x%i ==0 && y%i ==0)
break ;
return i ;
}
int LCM (int x, int y ) //定义LCM
{
int min, i, j ;
min =x >y ?y :x ;
for (i =min ;;i--)
if (x%i ==0 && y%i ==0)
break ;
j=x*y/i ;
return j ;
}
使用函数嵌套的方法
#include<stdio.h>
int main()
{
int GCD(int x, int y); //声明
int LCM(int x, int y); //声明
int a, b;
scanf_s("%d,%d", &a, &b); //注意中间有一个逗号
printf("%d\n", GCD(a, b));
printf("%d\n", LCM(a, b));
return 0;
}
int GCD(int x, int y) //定义GCD
{
int min, i;
min = x > y ? y : x;
for (i = min;; i--)
if (x % i == 0 && y % i == 0)
break;
return i;
}
int LCM(int x, int y) //调用GCD函数
{
int j;
j = x * y / GCD(x,y);
return j;
}
最后一种计算方法
#include<stdio.h>
int main()
{
int GCD(int x, int y); //声明
int LCM(int x, int y); //声明
int a, b;
scanf_s("%d,%d", &a, &b); //注意中间有一个逗号
printf("%d\n", GCD(a, b));
printf("%d\n", LCM(a, b));
return 0;
}
int GCD(int x, int y) //定义GCD
{
int min, i;
min = x > y ? y : x;
for (i = min;; i--)
if (x % i == 0 && y % i == 0)
break;
return i;
}
int LCM(int x, int y) //定义LCM函数
{
int max, j;
max = x > y ? x : y;
for (j = max;; j++)
if (j % x == 0 && j % y == 0)
break;
return j;
}