求最小公倍数算法:

最小公倍数=两整数的乘积÷最大公约数

求最大公约数算法:

(1)辗转相除法

有两整数a和b:

① a%b得余数c

② 若c=0,则b即为两数的最大公约数

③ 若c≠0,则a=b,b=c,再回去执行①

例如求27和15的最大公约数过程为:

27÷15 余1215÷12余312÷3余0因此,3即为最大公约数

代码如下:

1#include

2 int main() /*辗转相除法求最大公约数*/

3{4 intm, n, a, b, t, c;5 printf("Input two integer numbers:\n");6 scanf("%d%d", &a, &b);7 m=a; n=b;8 while(b!=0) /*余数不为0,继续相除,直到余数为0*/

9 {

c=a%b; a=b; b=c;//注意值的赋值情况

}10 printf("The largest common divisor:%d\n",a);//注意,最后一次除数的值被b赋给了a11 printf("The least common multiple:%d\n", m*n/a);12 }

//不能想当然的写成:while(c!=0)

{

c=a%b;

a=b;

b=c;

}

可以简写成:

1 int gcd(int a,intb)2{3 return b==0?a:gcd(b,a%b);4 }

⑵ 相减法

有两整数a和b:

① 若a>b,则a=a-b

② 若a

③ 若a=b,则a(或b)即为两数的最大公约数

④ 若a≠b,则再回去执行①

例如求27和15的最大公约数过程为:

27-15=12( 15>12 ) 15-12=3( 12>3 )

12-3=9( 9>3 ) 9-3=6( 6>3 )

6-3=3( 3==3 )

因此,3即为最大公约数

代码如下:

1 #include

2 int main ( ) /*相减法求最大公约数*/

3{4 intm, n, a, b, c;5 printf("Input two integer numbers:\n");6 scanf ("%d,%d", &a, &b);m=a; n=b;7 /*a, b不相等,大数减小数,直到相等为止。*/

8 while ( a!=b)9 if (a>b) a=a-b;10 else b=b-a;11 printf("The largest common divisor:%d\n", a);12 printf("The least common multiple:%d\n", m*n/a);13 }

⑶穷举法

有两整数a和b:

① i=1

② 若a,b能同时被i整除,则t=i

③ i++

④ 若 i <= a(或b),则再回去执行②

⑤ 若 i > a(或b),则t即为最大公约数,结束

改进:

① i= a(或b)

② 若a,b能同时被i整除,则i即为最大公约数,

结束

③ i--,再回去执行②

有两整数a和b:

① i=1

② 若a,b能同时被i整除,则t=i

③ i++

④ 若 i <= a(或b),则再回去执行②

⑤ 若 i > a(或b),则t即为最大公约数,结束

改进:

① i= a(或b)

② 若a,b能同时被i整除,则i即为最大公约数,

结束

③ i--,再回去执行②

1 #include

2 int main () /*穷举法求最大公约数*/

3{4 intm, n, a, b, i, t;5 printf("Input two integer numbers:\n");6 scanf ("%d,%d", &a, &b);m=a; n=b;7 for (i=1; i<= a; i++)8 if ( a%i == 0 && b%i ==0 ) t=i;9 printf("The largest common divisor:%d\n", t);10 printf("The least common multiple:%d\n", m*n/t);11}12 /*改进后的

13 for (t= a; t>0; t-- )

14 if ( a%t == 0 && b%t ==0 ) break;

15*/

1 //穷举法求最小公倍数

2 for (i= a; ; i++)3 if ( i % a == 0 && i % b ==0 ) break;4 printf("The least common multiple:%d\n", i )5

6 //多个数的最大公约数和最小公倍数

7 for (i= a; i>0; i--)8 if (a%i==0&&b%i==0&&c%i==0) break;9 printf("The largest common divisor:%d\n", i);10 for (i= a; ; i++)11 if (i%a==0&&i%b==0&&i% c==0) break;12 printf("The least common multiple:%d\n", i )

穷举最小公倍数c语言,c语言求最大公约数和最小公倍数相关推荐

  1. c语言用函数求最大公约数和最小公倍数

    c语言用函数求最大公倍数和最小公约数 #include<stdio.h> #include<math.h> #include<string.h> #include& ...

  2. 最小公倍数递归c语言,递归法求最大公约数和最小公倍数的实现代码

    #include using namespace std; int gcd(int a, int b);//声明最大公约数函数 int main() { int num1 = 1; int num2 ...

  3. c语言编程最大公约数穷举发,C语言基本算法 :1.求最大公约数与最小公倍数

    C语言基本算法 :1.求最大公约数与最小公倍数 一.最大公约数: 最大公约数目前有三种求法:更相减损术.辗转相除法以及穷举法. 1.更相减损术: 算法介绍:设两个整数数a和b,以较大数减较小数,得出的 ...

  4. c语言有参有类最小公倍数,C语言求最大公约数和最小公倍数算法

    C 语言求最大公约数和最小公倍数算法 C 语言求最大公约数和最小公倍数可以说是C 语言编程学习中一个重点和难点,它常常作为计算机专业学生参加各种考试必须要把握的内容.其算法方面除常用的辗转相除法外.还 ...

  5. C语言求最大公约数与最小公倍数

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105022773 求 ...

  6. C语言|求最大公约数和最小公倍数多种方法

    在开始之前我们先了解下什么是最大公约数和最小公倍数: 例如有两个数:a 和b 最大公约数用gcd表示,最小公倍数用lcm表示. 1.最大公约数就意味着能同时被a和b整除,即a%gcd==0 & ...

  7. c语言如何判断最小公倍数,c语言如何求最大公约数和最小公倍数?

    推荐教程:<C视频教程> c语言如何求最大公约数和最小公倍数? c语言求最大公约数和最小公倍数的方法: 求最大公约数算法: 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数 ...

  8. C语言求最大公约数及最小公倍数

    C语言求最大公约数及最小公倍数 1. 最大公约数 1.1 定义 ​ 最大公约数(Greatest Common Divisor,GCD),也称最大公因数.最大公因子,是一种数学概念,指两个或多个整数共 ...

  9. C语言:1027.自定义函数求最大公约数和最小公倍数

    C语言:1027.自定义函数求最大公约数和最小公倍数 题目描述: 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入. 解题思路: 1.利用辗转相 ...

  10. c语言求最大公约数(c语言求最大公约数和最小公倍数代码)

    C语言中求两个数的最大公约数的公式是什么? int i,a=3,b=6; int max=b; //初始化b大,下面判断如果a>b就把a给max //判断a,b大小 if(a>b) max ...

最新文章

  1. python输入语句-python输入语句
  2. 【AR】Vuforia之unity3d 开发环境搭建
  3. 非归档下oracle的备份和恢复
  4. java如何替换字符串0A_我有一个带有“ \ u00a0”的字符串,我需要将其替换为“” str_replace failed...
  5. 前端学习(3290):react hook state-hook传入对象+1操作
  6. 轻量级PHP接口框架PhalApi开源接口框架 v2.17.1源码
  7. hbase插入数据语句_记一次 spark thriftserver 插入数据到hbase 的异常
  8. ChengDu University Mental Health Test 需求分析文档
  9. 在网页中加入透明flash代码
  10. Adobe 强烈建议卸载:教你从 Win10 彻底删除 Flash
  11. 所有安卓手机通刷原生系统
  12. 能切换双显卡的android,安卓模拟器如何把双显卡切换成高性能显卡
  13. hexo+yilia添加背景特效
  14. bat文件改成sh文件在linux上运行java程序
  15. parse_depend_manifests Could not find dependent assembly LMicrosoft.Windows.Common-Controls
  16. SQL防注入大全——史上最全的 SQL 注入资料
  17. APP元素定位工具Weditor连接夜神模拟器
  18. 蓝牙BLE之系统学习
  19. 压缩文件报错 tar: Exiting with failure status due to previous errors
  20. accept文件上传类型

热门文章

  1. 牛股启动公式 跟庄吃面主图及选股公式 牛股启动特征详解
  2. 申请IntelliJ ideaIU学生优惠这么简单?
  3. 第3章第33节:图形的应用:使用图形表达包含关系的内容 [PowerPoint精美幻灯片实战教程]
  4. 关于深度学习应用于场景合成/自动布局的相关的论文阅读【211227更新】
  5. C语言线索二叉树的实现
  6. 线索二叉树(C语言实现)——后续线索链表
  7. C语言——操作符详解
  8. ReentrantLock源码分析(一)
  9. Android蓝牙理论
  10. OSChina 周一乱弹 —— 红薯表情包 V1.0 精彩大放送