第一次评论,请多多指教。:)
int main(int argc, const char * argv[])
{
int num1 = 0;
int num2 = 0;
int gcd = 0; // 最大公约数
int lcm = 0; // 最小公倍数
printf("请输入两个数:\n");
scanf("%d,%d", &num1, &num2);
int product = num1*num2;
// 将两个数排序,num1小,num2大
if (num1 > num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
}
/*
寻找最大公约数,(最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个)
通过两个数中的最小数,for循环,依次找最大公约数,找到后跳出循环。
*/
for (int i = num1; i > 0; i--) //
{
if (num1%i == 0 && num2%i == 0) // nim1、num2同除以最小的num1,若整除,则为最大公约数;
gcd = i; // 将最大公约数赋值给gcd.
break; // 找打最大公约数,跳出循环
}
}
lcm = product/gcd; // 两个数的积除以这两个数的最大公约数,等于最小公倍数
// 按要求打印
printf("gcd = %d\n", gcd);
printf("lcm = %d\n", lcm);
return 0;
} |