基础知识:
公约数是指可以同时整除两个或多个整数的整数,例如6可以被2整除,也可以被3整除,因此2和3都是6的公约数。最大公约数是指所有公约数中最大的那个数,例如6的最大公约数是6本身。
公倍数是指可以同时被两个或多个整数整除的整数,例如6是2和3的公倍数,因为2可以整除6两次,3也可以整除6一次。最小公倍数是指所有公倍数中最小的那个数,例如6的最小公倍数是6本身。
解题思路:
- 首先,代码提示用户输入两个正整数,并将输入的值存储在变量a和b中。
- 然后,使用for循环从1开始遍历到a和b中的较小值,如果a和b都可以被当前遍历的数i整除,那么i就是它们的公约数。当找到所有公约数中的最大值时,将其存储在变量gcd中。
- 接下来,使用a和b的乘积除以gcd来计算最小公倍数lcm。
- 最后,使用printf函数输出gcd和lcm的值。
- 核心思路是利用最大公约数和最小公倍数的定义,通过数学运算来求解。
程序源码:
#include <stdio.h>
int main() {
int a, b, i, gcd, lcm; // 定义五个整型变量
printf("请输入两个正整数:\n"); // 输出提示信息
scanf("%d %d", &a, &b); // 从标准输入中读取两个整数并存储在变量a和b中
// 计算最大公约数
for (i = 1; i <= a && i <= b; i++) {