用C语言编写求最大公因数和最小公倍数的程序

8个月前 (08-04 11:00)阅读3回复0
fayouxi
fayouxi
  • 管理员
  • 注册排名1
  • 经验值1185700
  • 级别管理员
  • 主题237140
  • 回复0
楼主

用C语言编写求最大公因数和最小公倍数的程序

#include <stdio.h>

// 定义求最大公约数(GCD)的函数

int gcd(int a, int b) {

if (b == 0)

return a;

else

return gcd(b, a % b); // 使用递归方式计算最大公约数

// 定义求最小公倍数(LCM)的函数

int lcm(int a, int b) {

// LCM可以通过两数相除再相乘来求得,因为LCM(a, b) = (a * b) / GCD(a, b)

return (a * b) / gcd(a, b); // 计算最小公倍数

int main() {

int num1, num2;

printf("请输入第一个整数:"); // 修正了引号的使用,使其更清晰

scanf("%d", &num1); // 读取第一个整数

if (scanf("%d", &num2) != 1) { // 如果第二个整数输入不正确,则进行错误处理

printf("输入错误,请确保输入的是一个整数!\n"); // 输出更友好的错误信息

return 1; // 返回错误代码,结束程序

}

printf("请输入第二个整数:"); // 再次提示用户输入第二个整数

scanf("%d", &num2); // 读取第二个整数

// 输出两数的最大公约数和最小公倍数

printf("数字 %d 和 %d 的最大公约数是: %d\n", num1, num2, gcd(num1, num2)); // 输出最大公约数

printf("数字 %d 和 %d 的最小公倍数是: %d\n", num1, num2, lcm(num1, num2)); // 输出最小公倍数

return 0; // 程序正常结束,返回0

这个程序首先包含了必要的头文件<stdio.h>,然后定义了两个函数gcdlcm分别用于计算最大公约数和最小公倍数,在main函数中,程序提示用户输入两个整数,并使用scanf函数读取这些值,如果第二个整数的输入不正确(即不是整数),程序会输出一个错误消息并返回一个错误代码,程序会输出两个整数的最大公约数和最小公倍数。
0
回帖

用C语言编写求最大公因数和最小公倍数的程序 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息