题目:
写两个函数,分别求两个整数的最大公约数和最小公倍数。在主函数中输入两个数,分别调用这两个函数,并输出结果
思路分析:
- 最大公因数:用i循环,同时被a,b整除,将其存在g内,找到最大的g并输出
- 最小公倍数:=(a*b)/gcd(a, b)
代码实现:
#include<stdio.h>
int gcd(int a, int b) //gcd最大公因数
{
int i = 0, g = 0;
int m = 0;
m = a < b? a : b;
for(i = 1; i <= m; i++)
{
if(a%i == 0 && b%i == 0)
{
g = i;
}
}
return g;
}
int lcm(int a, int b) //lcm最小公倍数
{
return (a*b)/gcd(a, b);
}
int main()
{
int a = 0, b = 0;
int c = 0, d = 0;
printf("Input number a, b:");
scanf("%d%d",&a,&b);
c = gcd(a, b);
d = lcm(a, b);
printf("Output gcd = %d, lcm = %d",c,d);
return 0;
}