15.编写程序,从键盘输人两个正整数,计算两个数的最大公约数和最小公倍数?

如题所述

以下是一个C语言程序,可以从键盘输入两个正整数,计算它们的最大公约数和最小公倍数。
#include <stdio.h>

int main() {
int num1, num2, gcd, lcm, temp, i;

// 从键盘输入两个正整数
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);

// 计算最大公约数
for (i = 1; i <= num1 && i <= num2; i++) {
if (num1 % i == 0 && num2 % i == 0) {
gcd = i;
}
}

// 计算最小公倍数
temp = num1 > num2 ? num1 : num2;
while (1) {
if (temp % num1 == 0 && temp % num2 == 0) {
lcm = temp;
break;
}
temp++;
}

// 输出结果
printf("最大公约数为:%d\n", gcd);
printf("最小公倍数为:%d\n", lcm);

return 0;
}

程序中,首先从键盘输入两个正整数,然后使用for循环计算它们的最大公约数。在for循环中,从1到两个数中较小的数进行循环,如果两个数都能被当前循环变量整除,则将当前循环变量赋值给gcd变量,最终得到最大公约数。
接着,程序使用while循环计算两个数的最小公倍数。while循环中,temp变量先被赋值为两个数中较大的数,然后不断进行自增操作,直到temp同时能被两个数整除,此时temp的值即为最小公倍数。
最后,程序输出最大公约数和最小公倍数的结果。
温馨提示:答案为网友推荐,仅供参考
相似回答