相信你是最棒哒!!!
提示:以下是本篇文章正文内容,下面案例可供参考
一、是什么?
最大公约数(GCD) 英文全称:Greatest Common Divisor。
是指两个或多个整数共有约数中最大的一个。例如:
-
12 和 18 的公约数有 1、2、3、6,其中最大的是 6,所以 GCD(12,18)=6。
最大公约数的性质:
-
它是两个数的公共因数中最大的一个。
-
它可以整除这两个数。
最小公倍数(LCM) 英文全称:Least Common Multiple。
是指两个或多个整数的公倍数中最小的一个。例如:
-
12 和 18 的公倍数有 36、72、108……,其中最小的是 36,所以 LCM(12,18)=36。
最小公倍数的性质:
-
它是两个数的公倍数中最小的一个。
-
它可以被这两个数整除。
二、怎么求?
1.引用函数
程序分为两部分:
-
计算最大公约数(GCD):
int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; // 当 b 为 0 时,a 就是最大公约数 }
-
计算最小公倍数(LCM):
int lcm(int a, int b, int gcd_value) { return (a * b) / gcd_value; // 使用公式 LCM = (a * b) / GCD }
-
主函数:
int main() { int a = 2024; int b = 1024; int gcd_value = gcd(a, b); // 计算最大公约数 int lcm_value = lcm(a, b, gcd_value); // 计算最小公倍数 printf("2024 和 1024 的最大公约数是: %d\n", gcd_value); printf("2024 和 1024 的最小公倍数是: %d\n", lcm_value); return 0; }
运行程序的结果
运行程序后,输出结果是:
2024 和 1024 的最大公约数是: 16
2024 和 1024 的最小公倍数是: 126464
验证:
-
2024×1024=2072320
-
GCD(2024,1024)=16
-
LCM(2024,1024)=162072320=126464
2.直接求
#include<stdio.h>
int main()
{
int a, b, t, m, n;
// a 和 b 用于计算 GCD,m 和 n 用于存储原始输入值,t 用于临时存储
scanf("%d%d", &a, &b);
m = a;
n = b; // 用于后续计算 LCM
// 使用欧几里得算法计算最大公约数(GCD)
while (b != 0)
{
t = b;
b = a % b;
a = t;
}
// 此时 a 的值就是最大公约数(GCD)
// 最小公倍数(LCM)可以通过公式 LCM = (m * n) / GCD 计算
printf("%d %d\n", a, m * n / a); // 输出最大公约数和最小公倍数
return 0; // 程序结束,返回 0 表示正常退出
}
#include<stdio.h>
int main()
{
int a, b, t, m, n;
scanf("%d%d", &a, &b);
m = a;
n = b;
while (b != 0)
{
t = b;
b = a % b;
a = t;
}
printf("%d %d\n", a, m * n / a);
return 0;
}
总结
. 总结
-
最大公约数(GCD) 是两个数的公共因数中最大的一个。
-
最小公倍数(LCM) 是两个数的公倍数中最小的一个。
-
它们之间的关系是:
LCM(a,b)=GCD(a,b)a×b -
这个公式反映了两个数的公共部分(GCD)和完整部分(LCM)之间的关系。