C语言 求两个整数的最大公约数和最小公倍数

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

cpp 复制代码
#include <stdio.h>

// 求最大公约数
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

// 求最小公倍数
int lcm(int a, int b) {
    return (a * b) / gcd(a, b);
}

int main() {
    int a, b;
    printf("输入两个整数:");
    scanf("%d %d", &a, &b);
    
    printf("最大公约数:%d\n", gcd(a, b));
    printf("最小公倍数:%d\n", lcm(a, b));
    
    return 0;
}

解释说明:

最大公约数:

  • 函数 gcd 使用辗转相除法(欧几里得算法)来计算两个整数的最大公约数。
  • 主函数从键盘读取两个整数,并调用 gcd 函数输出结果。

最小公倍数:

  • 函数 lcm 使用公式 LCM(a, b) = (a * b) / GCD(a, b) 计算最小公倍数。
  • 主函数从键盘读取两个整数,并调用 lcm 函数输出结果。
相关推荐
明月看潮生33 分钟前
青少年编程与数学 02-016 Python数据结构与算法 01课题、算法
数据结构·python·算法·青少年编程·编程与数学
北冥有鱼被烹1 小时前
【问题记录】C语言一个程序bug定位记录?(定义指针数组忘记[])
c语言·bug
小鱼学习笔记1 小时前
4.1最大子数组和(贪心算法、动态规划)
算法·贪心算法·动态规划
Мартин.1 小时前
[CISSP] [6] 密码学和对称密钥算法
算法·密码学
weixin_428498491 小时前
将MATLAB神经网络数据转换为C/C++进行推理计算
c语言·神经网络·matlab
勤劳的进取家2 小时前
贪心算法之Huffman编码
数据结构·人工智能·算法·数学建模·贪心算法·动态规划
石去皿2 小时前
力扣hot100 61-70记录
c++·算法·leetcode·深度优先
晓纪同学2 小时前
随性研究c++-智能指针
开发语言·c++·算法
天堂的恶魔9462 小时前
C —— 字符串操作
c语言·开发语言
程序员爱钓鱼2 小时前
Go 连接 Oracle 太麻烦?一文教你优雅搞定 GORM + Oracle 全流程!
后端·算法·go