【C语言】求最小公倍数和最大公约数(辗转相除法)

【C语言】求最小公倍数和最大公约数(辗转相除法)用到的名词:最小公倍数,最大公约数,辗转相除法一、名词解释:1).最小公倍数:最小公倍数(LeastCommonMultiple,LCM),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公约数来辅助计算。 最小公倍数=两数的乘积/最大公约(因)数,解题时要避免和最大公约(因)…

大家好,又见面了,我是你们的朋友全栈君。

用到的名词:最小公倍数最大公约数辗转相除法

一、名词解释:

1).最小公倍数:

最小公倍数(Least Common Multiple,LCM),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公约数来辅助计算。

最小公倍数=两数的乘积/最大公约(因)数,解题时要避免和最大公约(因)数问题混淆。

对于最小公倍数的求解,除了利用最大公约数外,还可根据定义进行算法设计。要求任意两个正整数的最小公倍数即,求出一个最小的能同时被两整数整除的自然数。

 

 

 

 

 

2).最大公约数

如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。

根据约数的定义可知,某个数的所有约数必不大于这个数本身,几个自然数的最大公约数必不大于其中任何一个数。要求任意两个正整数的最大公约数即求出一个不大于其中两者中的任何一个,但又能同时整除两个整数的最大自然数。

 

 

 

 

3).辗转相除法

辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

 

 

 

二、算法思想

        利用格式输入语句将输入的两个数分别赋给 a 和 b,然后判断 a 和 b 的关系,如果 a 小于 b,则利用中间变量 t 将其互换。再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输出。

三、代码实现:

1.手机用户(贴图):

【C语言】求最小公倍数和最大公约数(辗转相除法)

2.代码:

#include <stdio.h>
  2 int main()
  3 {
  4     int a,b,c,m,t;
  5     printf("请输入两个数:\n");
  6     scanf("%d%d",&a,&b);
  7     if(a<b)
  8     {
  9         t=a;
 10         a=b;
 11         b=t;
 12     }
 13     m=a*b;
 14     c=a%b;
 15     while(c!=0)
 16     {
 17         a=b;
 18         b=c;
 19         c=a%b;
 20     }
 21     printf("最大公约数是:\n%d\n",b);
 22     printf("最小公倍数是:\n%d\n",m/b);
 23 }

3.效果图:

【C语言】求最小公倍数和最大公约数(辗转相除法)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145322.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode-11盛最多水的容器「建议收藏」

    leetcode-11盛最多水的容器「建议收藏」原题链接给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:he

    2022年8月8日
    2
  • mysql安装包5.7.17.0_mysql-5.7.17-winx64压缩版的安装包下载和安装配置「建议收藏」

    mysql安装包5.7.17.0_mysql-5.7.17-winx64压缩版的安装包下载和安装配置「建议收藏」网上有很多的安装配置步骤,但是一个跟一个遇到的问题不一样,总之越是写的完整的人,遇到的错误越多,在安装过程中也就越悲催!第一步:下载mysql安装包—下载网址https://downloads.mysql.com/archives/community/第二步:找到你下载的文件夹,解压。然后你在任意一个磁盘内新建一个文件夹把它放好,这个文件夹就作为它的安装目录,我建的是这个路径—->F…

    2022年4月19日
    42
  • 【STM32】STM32CubeMX教程二–基本使用(新建工程点亮LED灯)

    【STM32】STM32CubeMX教程二–基本使用(新建工程点亮LED灯)前言在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯面向初学者如果您想着快速实现工程的创建,可以直接跳过功能介绍,观看工程创建一栏并且,在新建工程时,我们分为了具体流程1~7如果您不想看每部分的讲解,直接按照流程操作即可,5分钟即可成功点亮LED灯安装…

    2022年6月14日
    46
  • webpack图片压缩_webpack的cdn

    webpack图片压缩_webpack的cdn图片处理url-loader(webpack5之前的处理方式)在项目开发中,我们时长会需要使用到图片,比如在img文件夹中有图片test1.png,然后在normal.css中会引用到图片body

    2022年7月30日
    3
  • vb编程入门_python编程入门

    vb编程入门_python编程入门Linux操作系统Shell编程快速入门、shell变量、、运算符、条件判断、流程控制(if、case、for、while语句)。

    2022年8月18日
    3
  • Fiddler抓包原理解析

    Fiddler抓包原理解析

    2021年10月5日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号