c语言如何用循环结构编写程序求两个正整数的最小公倍数和最大公因数
时间: 2024-12-08 18:18:10 浏览: 47
在C语言中,可以使用循环结构结合一些数学算法来计算两个正整数的最大公因数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM)。这里我们通常会利用欧几里得算法来求GCD,然后利用公式LCM(a, b) = |a * b| / GCD(a, b)
来求LCM。
以下是使用循环结构的示例代码:
#include <stdio.h> // 引入标准输入输出库
// 使用欧几里得算法求两数的最大公因数
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a; // 返回最后的余数,即最大公因数
}
// 根据GCD计算最小公倍数
int lcm(int a, int b) {
return abs(a * b) / gcd(a, b); // 使用绝对值避免负数影响结果
}
int main() {
int num1, num2;
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
if (num1 <= 0 || num2 <= 0) {
printf("输入的数值应为正整数。\n");
return 1;
}
int result_gcd = gcd(num1, num2);
int result_lcm = lcm(num1, num2);
printf("这两个数的最大公因数是:%d\n", result_gcd);
printf("这两个数的最小公倍数是:%d\n", result_lcm);
return 0;
}
相关推荐


















