最大公约数与最小公倍数的求解是很多初学C的人所面临的一道问题。当然这道问题并不难解答,也有很多人已经写过相关的博客,我在此书写此篇博客,一是为了让自己能够夯实基础,另外就是希望能够帮到和我一样的初学者。

当然,在写这篇博客之前,我已经做过相关资料的调查,可能读者会发现此篇博客会与其他人的博客有所重复,但是,我保证绝未抄袭。好了,进入正题!

问题:请从键盘上输入两个数值 x,y,请用C语言求出这两个数值的最大公约数与最小公倍数。

首先,我们要想解决这道问题,就要了解什么是最大公约数与最小公倍数。

最大公因数;也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。----来源百度百科

最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数。----来源百度百科

了解了其含义,接下来就是构思算法,通常而言,求解最大公约数有三种算法,而最小公倍数的求解,我们可以很容易的推断出,最小公倍数等于两个数值的乘积除以这两个数值的最大公约数。那么接下来的算法我将在此一一进行列举和解释。

1.辗转相除法:

又名欧几里德算法(Euclidean algorithm),它是已知最古老的算法, 其可追溯至公元前300年前。 ----来源百度百科

辗转:望文生义,就是翻来覆去。相除就很好理解了,就是进行除法运算。

辗转相除法的核心就是不断的让两个数做除法运算。其原理基于两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。

假设两数为 x,y。

先令 z = x % y ;

之后 y 赋给 x 即令  x = y ;

再将 z 赋给 y 即令  y = z;

辗转相减,其终止条件为:y 等于0时。

代码如下:

#include

int main()

{

int x, y, z, m, n;

printf("请输入两个数:");

scanf_s("%d%d", &x, &y);

m = x, n = y;

while (y != 0)

{

z = x%y;

x = y;

y = z;

}

printf("最大公约数是: %d\n", x);

printf("最小公倍数是: %d\n", m*n / x);

system("pause");

return 0;

}

2.辗转相减法:

即尼考曼彻斯法,其特色是做一系列减法,从而求得最大公约数。----来源百度百科

辗转相减法即通过对两数的不断减法运算。

假设两数为 x, y。

当 x > y 时,令 x = x - y;

反之,则令 y = y - x;

之后一直辗转相减,直至 x = y 时,终止。

代码如下:

#include

int main()

{

int x, y, m, n;

printf("请输入两个数:");

scanf_s("%d%d", &x, &y);

m = x, n = y;

while (x!=y)

{

if (x>y)

x = x-y;

else

y = y-x;

}

printf("最大公约数是: %d\n", x);

printf("最小公倍数是: %d\n", m*n / x);

system("pause");

return 0;

}

3.穷举法:

穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕。----来源百度百科

穷举法又称枚举法,通过对数值范围内的所有数字进行检验,得出其结果。

代码如下:

#include

int main()

{

int x, y, i, m, n;

printf("请输入两个数:");

scanf_s("%d%d", &x, &y);

m = x, n = y;

for (i = 1; i <= x; i++)

{

if (x%i == 0 && y%i == 0)

}

for (i = x; i > 0; i--)

{

if (x%i == 0 && y%i == 0)

}

printf("最大公约数是: %d\n", i);

printf("最小公倍数是: %d\n", m*n / i);

system("pause");

return 0;

}

以上即为求解最大公约数与最小公倍数的三种算法,如有纰漏,还请各位不吝赐教。

c语言求最大公约数和最小公倍数

求最大公约数和最小公倍数 假设有两个数a和b,求a,b的最大公约数和最小公倍数实际上是一个问题,得出这两个数的最大公约数就可以算出它们的最小公倍数. 最小公倍数的公式是 a*b/m m为最大公约数 因 ...

JAVA 基础编程练习题6 【程序 6 求最大公约数及最小公倍数】

6 [程序 6 求最大公约数及最小公倍数] 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数. 程序分析:利用辗除法. package cskaoyan; public class csk ...

c语言:辗转相除法求最大公约数、最小公倍数

辗转相除法,又称欧几里得算法.两个正整数a和b(a>b),它们的最大公约数等于余数c和较小的数b之间的最大公约数.最小公倍数=两数之积/最大公约数 #include

Java求最大公约数和最小公倍数

最大公约数(Greatest Common Divisor(GCD)) 基本概念 最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个.a,b的最大公约数记为(a,b),同样的 ...

辗转相除法求最大公约数和最小公倍数【gcd】

要求最小公倍数可先求出最大公约数 设要求两个数a,b的最大公约数 伪代码: int yushu,a,b: while(b不等于0) { yushu=a对b求余 b的值赋给a yushu的值赋给b } ...

Java50道经典习题-程序6 求最大公约数及最小公倍数

题目:输入两个正整数m和n,求其最大公约数和最小公倍数.分析:用辗转相除法求最大公约数    两个数的最大公约数:设两个数分别为n和m,(n>=m);用定义一个变量i,使用for循环,将i的取值 ...

Problem06 求最大公约数及最小公倍数

题目:输入两个正整数m和n,求其最大公约数(m,n)和最小公倍数[m,n]. 程序分析:利用辗转相除法. 利用辗除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数, 再用出现的余数(第二余数 ...

求最大公约数和最小公倍数&lowbar;python

"""写两个函数,分别求两个整数的最大公约数和最小公倍数,调用这两个函数,并输出结果.两个整数由键盘输入.""" ''' 设两个整数u和v, ...

C语言 &&num;183&semi; 求最大公约数

算法提高 求最大公约数   时间限制:1.0s   内存限制:512.0MB      编写一函数gcd,求两个正整数的最大公约数. 样例输入: 5 15样例输出:5 样例输入: 7 2样例输出:1 ...

随机推荐

Function&period;prototype&period;call 和 Function&period;prototype&period;apply 的区别

call和apply函数是function函数的基本属性,都可以用于更改函数对象和传递参数,是前端工程师常用的函数.具体使用方法请参考以下案列: 例如: 申明函数: var fn = function ...

jquery实现简单瀑布流布局(续):图片懒加载

# jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...

PHP基础 之 数组&lpar;一&rpar;

37&period; Binary Tree Zigzag Level Order Traversal &amp&semi;&amp&semi; Binary Tree Inorder Traversal

Binary Tree Zigzag Level Order Traversal Given a binary tree, return the zigzag level order traversa ...

Linux&lowbar;屏蔽360、scanv、QQ管家等IP扫描

vi banip.sh #!/bin/bash echo "banip" iptables -A INPUT -s 221.204.203.0/24 -j DROP iptable ...

iOS-申请开发证书流程

1.开发者证书(分为开发和发布两种,类型为ios Development,ios Distribution),这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证 ...

一般处理程序、ASP&period;NET核心知识(5)--转载

初窥 1.新建一个一般处理程序 新建一个一般处理程序 2.看看里头的代码 public class MyHandler : IHttpHandler { public void ProcessRequ ...

讨厌OpenSSL

在OpenSSL心脏出血后,.我相信很多人都出了血.而流下眼泪...瞬间出现在网上了很多吐槽OpenSSL文章还是那条,窝火一刻仿佛心脏被释放出来,按照这个忙疯了,我吐在嘈杂.在这些年被雪OpenSS ...

Elasticsearch实现类似 like &&num;39&semi;&quest;&percnt;&&num;39&semi; 搜索

在做搜索的时候,下拉联想词的搜索肯定是最常见的一个场景,用户在输入的时候,要自动补全词干,说得简单点,就是以...开头搜索,如果是数据库,一句SQL就很容易实现,但在elasticsearch如何实现 ...

js中通过Object&period;prototype&period;toString方法----精确判断对象的类型

判断是否为函数 function isFunction(it) {        return Object.prototype.toString.call(it) === '[object Func ...

c语言中输出最大公约数和最小公倍数,c语言求最大公约数和最小公倍数(转)...相关推荐

  1. c语言中输出字母时有个感叹号,C语言中的双感叹号的作用

    两个!是为了把 非0值 转换成1,而0值还是0. 因为C语言中,所有 非0值 都表示真.所以!非0值 = 0,而!0 = 1. 所以!!非0值 = 1,而!!0 = 0. 示例如下: #include ...

  2. c 语言输出字符用什么作用是什么,C语言中输出字符串用什么符号

    C语言中输出字符串用双引号. (推荐教程:c语言教程) 详细解读: 在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是: puts():输出字符串并自动换行,该函数只能输出字符串. ...

  3. c语言输出字符串用什么符号,C语言中输出字符串用什么符号_后端开发

    php中字符串如何转16进制_后端开发 ​在php中可以使用"bin2hex()"函数将字符串转换成16进制,该函数用于字符串转换成16进制,其语法是"bin2hex($ ...

  4. c语言输出不同字体的汉字,【】c语言中输出汉字的编码

    []c语言中输出汉字的编码 (2012-03-25 22:10:04) 标签: c语言 汉字编码 杂谈 分类: C语言 C语言中,我们用整数输出字符得到的就是该字符的ASII码,如用整数输出a,得到9 ...

  5. c语言中输出的各种类型

    c语言中输出的类型格式 1.%d-以十进制形式输出带符号整数: 2.%o-以八进制形式输出无符号整数(不输出前缀O); 3.%x-以十六进制形式输出无符号整数(不输出前缀OX); 4.%u-以十进制形 ...

  6. python中最小公倍数函数_python求最大公约数和最小公倍数的简单方法

    python怎么求最大公约数和最小公倍数 一.求最大公约数 用辗转相除法求最大公约数的算法如下: 两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数.比如10和 ...

  7. python计算最大公约数和最小公倍数_python怎么求最大公约数和最小公倍数

    python怎么求最大公约数和最小公倍数 一.求最大公约数 用辗转相除法求最大公约数的算法如下: 两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数.比如10和 ...

  8. python最大公约数和最小公倍数_python怎么求最大公约数和最小公倍数

    python怎么求最大公约数和最小公倍数 一.求最大公约数 用辗转相除法求最大公约数的算法如下: 两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数.比如10和 ...

  9. c语言中存贮班级学生的变量,C语言----变量教案.docx

    C语言----变量教案 课 题 2.2 常量和变量----变量 课型 理实一体化 授课班级 高二计算机(升学班) 课时 2 教学目标 复习巩固C语言中常量的应用: 掌握C语言中变量的命名规则及应用. ...

  10. c语言编程输出字母倒三角形,如何在C语言中打印倒三角形

    如何在C语言中打印倒三角形 发布时间:2020-07-28 11:53:15 来源:亿速云 阅读:281 作者:Leah 这期内容当中小编将会给大家带来有关如何在C语言中打印倒三角形,文章内容丰富且以 ...

最新文章

  1. [程序员创造力训练 1] 猜单词 - 关于健康
  2. DataGuard physical standby创建与维护
  3. 使用Spring操作Redis的key-value数据
  4. 开发日记-20190623 关键词 休眠(可耻)
  5. linux 安装 memcached
  6. interface abstract与virtual
  7. 批处理作业调度问题 ——回溯法详解
  8. python websocket实现消息推送_python Django websocket 实时消息推送
  9. html jQuery 光标位置,jquery实现在光标位置插入内容的方法
  10. 使用opencv-python画OpenCV LOGO
  11. static library libs/libvpx/libvpx.a is not portable!
  12. webpack4.0配置记录(2) 1
  13. FPGA与数字信号处理
  14. 86五笔输入法教程详解
  15. 2016(第三届)智能家居世界大会
  16. 苹果手机怎么设置信号服务器,苹果手机信号怎么改成数字 方法介绍
  17. SFP(Small Form-factor Pluggables)光模块
  18. DES算法的加解密原理(详细算法+样例Demo)
  19. 海尔跨越福特、丰田制造标杆主导世界制造业国际标准
  20. 11.25作业(ZLY)

热门文章

  1. 车牌识别算法介绍与实践
  2. Mac 修改 hosts 命令,以及使其立马生效
  3. 反转链表(图解,易懂)
  4. java int 转 object_在java上将int转换为Object
  5. python单例模式有什么用_python单例模式是什么
  6. 放大图片模糊怎么变清晰?
  7. mysql通配符大全_MySQL模糊查询用法大全(正则、通配符、内置函数等)
  8. 神仙代码静态测试工具 Helix QAC 2022.3中的新增功能
  9. 阿里语音识别sdk_demo--发送音频数据帧的过程
  10. 中小企业(OA)办公系统方案 huangai[VA]