#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;
}
灵魂拷问:最小公倍数好最大公约数有负数吗?
#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);
if(a<0||b<0)
{
printf("input Error\n");
return 0;
}
c = gcd(a, b);
d = lcm(a, b);
printf("Output gcd = %d, lcm = %d", c, d);
return 0;
}
在scanf
后面去判断a.b的值是否有效