首页 > 其他分享 >C语言---最大公约数和最小公倍数的求法

C语言---最大公约数和最小公倍数的求法

时间:2024-05-25 11:57:12浏览次数:12  
标签:gcdValue 公倍数 C语言 --- int 最大公约数 计算 余数

#include <stdio.h>
//欧几里得算法求的最大公约数
int gcd(int a, int b)
{
    //一定要确保a>b
    if (a < b)
    {
        int temp = a;
        a = b;
        b = temp;//作用是创建临时变量将a和b的数值置换
    }
    while (b != 0)//当b不等于0时,继续执行循环
    {
        int remainder = a % b;//计算余数
        //算完余数后,进行新的计算,届时a位置上面的值由b替代
        //也就是第二次计算时,b坐在第一次a的位置,
        // 第一次的余数坐在第一次计算时b的位置
        a = b;
        b = remainder;//此时b的位置是余数
    }
    //注意这个循环的条件b != 0
    //当下一次计算的时候,上一次计算时
    //算出的余数不为0,那么就在下一次计算的时候坐在b的位置
    //但要是上一次计算的余数为0,也就是下次计算的b=0,
    // 那么循环就停止了,
    //恰好上一次循环的b现在在a的位置,所以现在a位置上面的值就是
    //我们要求的最大公约数
    return a;
}

//根据最大公约数求得最小公倍数
//最小公倍数就是你输入的两个值相乘再除以最大公约数
int lcm(int a, int b, int gcdValue)
{
    return a * b / gcdValue;
}
//这种题最关键的就是求出最大公约数
// 再根据最大公约数求出最小公倍数


int main()
{
    int m, n;
    scanf("%d %d", &m, &n);
    //计算最大公约数
    int gcdValue = gcd(m, n);
    //计算最小公倍数
    int lcmValue = lcm(m, n, gcdValue);
    //打印最大公约数和最小公倍数之和
    printf("%d", gcdValue + lcmValue);


    return 0;
}


如果给的数据特别大,就在每个int前面添加long long
并且在占位符%d前面添加ll

标签:gcdValue,公倍数,C语言,---,int,最大公约数,计算,余数
From: https://blog.csdn.net/2301_80863610/article/details/139195308

相关文章

  • C语言---数组中逆序输出--新
    #include<stdio.h>intmain(){//下面的是输入intarr[10]={0};//创建一个大小为10的数组for(inti=0;i<10;i++){scanf("%d",&arr[i]);//循环输入i的值}//为什么是i从9开始,不是从0开始//因为总共10个数,所以最大数......
  • A Simple Framework for Open-Vocabulary Segmentation and Detection
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!ProceedingsoftheIEEE/CVFInternationalConferenceonComputerVision.2023. Abstract  1.Introduction 2.RelatedWork 3.Method3.1.BasicLossFormulation 3.2.BridgeTaskGap:Decou......
  • datax和datax-web时间问题处理(定时任务没有按指定时间触发、日志时间错误)
    datax-web和datax各种时间不准问题此文目的为解决日志输出中的时间不准确问题和datax-web定时任务触发时间不对的问题(以东八区为例),但首先要确认操作系统的时间和时区是正常的!!!。总体思路就是修改时区,修改三个文件:datax.py、datax-executor.sh、datax-admin.sh在对应的位置加上时......
  • 【爆肝分享】AI绘图Stable Diffusion-ComfyUI 从入门到精通完整学习教程资料,AI绘图高
    「前言」自从2022年stablediffusion横空出世以来,AI绘图正以其强大的表现能力与惊人的迭代速度极大的改变了建筑师设计与表现的工作流程。无论是利用AI的随机性与可控性进行项目构思。▲AI体块造型构思亦或是利用AI辅助建筑表现。▲AI线稿精准控图甚至使用AI进行......
  • 【人民卫生音像-注册安全分析报告】
    前言由于网站注册入口容易被黑客攻击,存在如下安全问题:暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞所以大部分网站及App都采取图形验证码或滑动验证码等交互解决方案,但在机器学习能力提......
  • Python筑基之旅-MySQL数据库(三)
    目录一、数据库操作1、创建1-1、用mysql-connector-python库1-2、用PyMySQL库1-3、用PeeWee库1-4、用SQLAlchemy库2、删除2-1、用mysql-connector-python库2-2、用PyMySQL库2-3、用PeeWee库2-4、用SQLAlchemy库二、数据表操作1、创建1-1、用mysql-connector-pyth......
  • Python筑基之旅-MySQL数据库(四)
    目录一、数据表操作1、新增记录1-1、用mysql-connector-python库1-2、用PyMySQL库1-3、用PeeWee库1-4、用SQLAlchemy库2、删除记录2-1、用mysql-connector-python库2-2、用PyMySQL库2-3、用PeeWee库2-4、用SQLAlchemy库3、修改记录3-1、用mysql-connector-python......
  • 试用百川智能的百小应-说的太多,做的太少
       “百小应”的品牌标识(logo)上有一缕黄色,这是王小川特意设计的。他说,其他AI应用都在强调科技感,更愿意用蓝色或者冷色调。但他觉得这一代科技与上个时代不一样,现代科技应该像人,所以选择使用暖色调。  从公司名字,从百小应的设计风格,从他的讲话,他还是哪个有点自恋的他!......
  • Ubuntu-lcd设备文件控制
    1、通过系统函数来控制lcd设备文件的流程打开文件将颜色写入到lcd屏幕上关闭文件2、Lcd特性设备名字/dev/unbuntu_lcd设备宽度和高度(像素点、大小、分辨率)800*480位深度:一个像素点所占用的大小---32位整个屏幕的大小:宽度高度位深度/8intlcd_argb[800*480];屏幕属......
  • 数组类型的有界阻塞队列-ArrayBlockingQueue
    一:ArrayBlockingQueue简介  一个由循环数组支持的有界阻塞队列。它的本质是一个基于数组的BlockingQueue的实现。它的容纳大小是固定的。此队列按FIFO(先进先出)原则对元素进行排序。队列的头部是在队列中存在时间最长的元素。队列的尾部是在队列中存在时间最短的元素。......