穷举最小公倍数c语言,c语言求最大公约数和最小公倍数
求最小公倍数算法:
最小公倍数=两整数的乘积÷最大公约数
求最大公约数算法:
(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语言求最大公约数和最小公倍数相关推荐
- c语言用函数求最大公约数和最小公倍数
c语言用函数求最大公倍数和最小公约数 #include<stdio.h> #include<math.h> #include<string.h> #include& ...
- 最小公倍数递归c语言,递归法求最大公约数和最小公倍数的实现代码
#include using namespace std; int gcd(int a, int b);//声明最大公约数函数 int main() { int num1 = 1; int num2 ...
- c语言编程最大公约数穷举发,C语言基本算法 :1.求最大公约数与最小公倍数
C语言基本算法 :1.求最大公约数与最小公倍数 一.最大公约数: 最大公约数目前有三种求法:更相减损术.辗转相除法以及穷举法. 1.更相减损术: 算法介绍:设两个整数数a和b,以较大数减较小数,得出的 ...
- c语言有参有类最小公倍数,C语言求最大公约数和最小公倍数算法
C 语言求最大公约数和最小公倍数算法 C 语言求最大公约数和最小公倍数可以说是C 语言编程学习中一个重点和难点,它常常作为计算机专业学生参加各种考试必须要把握的内容.其算法方面除常用的辗转相除法外.还 ...
- C语言求最大公约数与最小公倍数
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105022773 求 ...
- C语言|求最大公约数和最小公倍数多种方法
在开始之前我们先了解下什么是最大公约数和最小公倍数: 例如有两个数:a 和b 最大公约数用gcd表示,最小公倍数用lcm表示. 1.最大公约数就意味着能同时被a和b整除,即a%gcd==0 & ...
- c语言如何判断最小公倍数,c语言如何求最大公约数和最小公倍数?
推荐教程:<C视频教程> c语言如何求最大公约数和最小公倍数? c语言求最大公约数和最小公倍数的方法: 求最大公约数算法: 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数 ...
- C语言求最大公约数及最小公倍数
C语言求最大公约数及最小公倍数 1. 最大公约数 1.1 定义 最大公约数(Greatest Common Divisor,GCD),也称最大公因数.最大公因子,是一种数学概念,指两个或多个整数共 ...
- C语言:1027.自定义函数求最大公约数和最小公倍数
C语言:1027.自定义函数求最大公约数和最小公倍数 题目描述: 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入. 解题思路: 1.利用辗转相 ...
- c语言求最大公约数(c语言求最大公约数和最小公倍数代码)
C语言中求两个数的最大公约数的公式是什么? int i,a=3,b=6; int max=b; //初始化b大,下面判断如果a>b就把a给max //判断a,b大小 if(a>b) max ...
最新文章
- python输入语句-python输入语句
- 【AR】Vuforia之unity3d 开发环境搭建
- 非归档下oracle的备份和恢复
- java如何替换字符串0A_我有一个带有“ \ u00a0”的字符串,我需要将其替换为“” str_replace failed...
- 前端学习(3290):react hook state-hook传入对象+1操作
- 轻量级PHP接口框架PhalApi开源接口框架 v2.17.1源码
- hbase插入数据语句_记一次 spark thriftserver 插入数据到hbase 的异常
- ChengDu University Mental Health Test 需求分析文档
- 在网页中加入透明flash代码
- Adobe 强烈建议卸载:教你从 Win10 彻底删除 Flash
- 所有安卓手机通刷原生系统
- 能切换双显卡的android,安卓模拟器如何把双显卡切换成高性能显卡
- hexo+yilia添加背景特效
- bat文件改成sh文件在linux上运行java程序
- parse_depend_manifests Could not find dependent assembly LMicrosoft.Windows.Common-Controls
- SQL防注入大全——史上最全的 SQL 注入资料
- APP元素定位工具Weditor连接夜神模拟器
- 蓝牙BLE之系统学习
- 压缩文件报错 tar: Exiting with failure status due to previous errors
- accept文件上传类型