首先要了解,求两个数的最小公倍数只需用两个数的乘积除以最大公因数就可以得到了,所以我们的目标就是找最大公因数

c语言

第一种方法用辗转相除法:
辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求两个正整数之最大公约数的算法。它是已知最古老的算法, 其可追溯至公元前300年前。

它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。


代码实现:

#include <stdio.h>
#include <math.h>int main() {int  a, b;scanf("%d %d", &a, &b);int flag = 0, mul; //用来存a原来的值flag = a;mul = a * b;a = (a > b) ? a : b;b = (b < flag) ? b : flag; //令a为较大的数int count;//记下上个除法的除数while  (b != 0) {count = b;b = a % b;//求余数a = count;}int key = count; //最大公因数为最后一个除式的除数int king = mul / key; //最小公倍数printf("%d %d", key, king);return 0;
}


2.最大公因数肯定是比两个数中最小的数还小,所以我们从最小的数开始找,直到找到一个数(两个数都能对其整数的数)就可以了

#include <stdio.h>
#include <math.h>int main() {int  a, b;scanf("%d %d", &a, &b);int flag = 0, mul; //用来存a原来的值flag = a;mul = a * b;a = (a > b) ? a : b;b = (b < flag) ? b : flag; //令a为较大的数int i;for ( i = b; i >= 1; i--)if (a % i == 0 && b % i == 0)break;//找到后要马上停止循环printf("%d %d", i, mul / i);return 0;
}

c++

c++中有专门找最大公因数的函数,使用即可

#include <iostream>
#include <algorithm>//必须包含这个头文件
using namespace std;int main() {int a, b;while (cin >> a >> b) {int c, t;c = __gcd(a, b);//求最大公因数的函数,注意是量个下划线__;t = a * b / c;cout << c << ' ' << t << endl;}return 0;
}

希望对大家有帮助呀

c语言,c++求最大公因数与最小公倍数方法集合相关推荐

  1. 用C语言实现求最大公因数和最小公倍数

    用C语言实现最大公因数和最小公倍数 一.方法论最大 公因数和最小公倍数 求两个数最大公因数 eg:18 24 18的因数 1 2 3 6 9 18 24的因数 1 2 3 4 6 8 12 24 求法 ...

  2. C语言求最大公因数与最小公倍数

    1辗转相除法求最大公因数余最小公倍数 辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子的: ⒈ 令r为a/b所得余数(0≤r) 若 r= 0,算法结束:b 即为答案. ⒉ 互换:置 ...

  3. c语言求最大公因数和最小公倍数

    一.用辗转相除法求最大公因数 辗转相除: 假如需要求 1997 和 615 两个正整数的最大公约数,进行过程如下: 1997 / 615 = 3 (余152) 615 / 152 = 4(余7) 15 ...

  4. 怎么求最大公因数和最小公倍数

    设有a,b两数,求他们的最大公因数和最小公倍数 公式:最大公因数 =  a * b / 最小公倍数 = 两数之积除以最小公倍数. #include "iostream" //voi ...

  5. 求最大公因数与最小公倍数

    求a与b的最大公因数与最小公倍数 求最大公因数: 辗转相除法,欧几里得算法 //辗转相除法 long long gcd(long long a, long long b){long long aa = ...

  6. C++枚举法求最大公因数和最小公倍数

    #include<iostream> using namespace std; int main() {//最大公因数和最小公倍数int m, n;cout << " ...

  7. C语言 多种方法求最大公因数和最小公倍数

    最大公约数:指能够整除多个整数的最大正整数,而多个整数不能都为零. 最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数. 求最小公倍数的算法 ...

  8. c语言编程求完数的方法,求一完数算法

    我重新换了一种算法 这种方法 大概能在16秒左右把40000000之内的 完数扫描出来 #include int iswanshu(int n) { int i,j,count ; i=count=0 ...

  9. Java最优化求最大公约数\最小公倍数方法

    最小公倍数:指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数,其中除0以外最小的一个公倍数,叫做这几个数的最小公倍数 最大公约数:指两个或多个整数共有约数中最大的一个 最大 ...

最新文章

  1. 如何做好一场技术演讲-总结:4、演讲中的肢体语言管理和声音控制有哪些门道?
  2. C语言实现易语言变量框,c语言实现简单的易语言
  3. Minetorch教程
  4. golang中创建logger时候踩过的坑
  5. C++标准库之String
  6. CF815C Karen and Supermarket [树形DP]
  7. 全球仅3000人通过的TensorFlow开发人员认证到底有多香!
  8. 【论文翻译】统一知识图谱学习和建议:更好地理解用户偏好
  9. 源码分析参考:Pipelines
  10. [fastjson] - fastjson中 JSONObject 和 JSONArray
  11. 屏幕释放第八章 Libgdx输入处理(3)输入设备
  12. 7-1 近似求PI (15 分)
  13. 响应式2022英文企业官网源码,感觉挺有创意的
  14. 头歌 Java IO 答案 增加章节java学习-Java输入输出之字节缓冲IO流之复制文件
  15. SCC1传输请求(同系统跨Client)
  16. 火端搜索V2.1原始程序
  17. 企查查某 2022/7/13 随机请求头JS逆向:★★
  18. Hacking Tools简介
  19. 在vue中渲染数学公式 - MathJax
  20. Unity3D关于ComputeShader

热门文章

  1. html播放完视频自动关闭,html视频播放完后跳转
  2. c语言无限循环while(1)和for(;;)的区别
  3. pycharm 波浪线报绿 Typo: In word 'xxxx'(绿色波浪线)
  4. 第十一届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学B组
  5. Elasticsearch Grok Pattern内置表达式大全
  6. Elasticsearch script使用详解
  7. centos php5.2安装教程,CentOS 5.2 x86 64(AMD)编译安装PHP小记
  8. mariadb导入sql数据_「译」关系型数据库介绍
  9. chrome设置微信ua_Chrome谷歌浏览器模拟微信内置浏览器的方法(电脑上)
  10. flink source 同步_如何生成 Flink 作业的交互式火焰图?