算法篇----求两数的最大公约数和最小公倍数
一、最大公约数与最小公倍数
最大公约数,属于数论所探究的内容。
最大公约数可以通过下面的三种方法求出来。
最小公倍数呢,它与最大公约数的乘机为所求数之积。
比如求 x,y的最大公约数和最小公倍数
记住这个公式: x*y=最小公倍数*最大公约数
这样以来求出最大公约数后就可以求出最小公倍数
二、求最大公约数的三种方法
①辗转相除法
算法流程图
代码块:
int measure(int x, int y)
{ int z = y; while(x%y!=0) { z = x%y; x = y; y = z; } return z;
}
运行结果:
![](/assets/blank.gif)
②辗转相减法
代码块:
int measure(int a,int b)
{ while(a != b) { if(a>b) { a = a - b; } else { b = b - a; } } return a;
}
运行结果:
③穷举法
流程图:
代码块:
int measure(int x,int y)
{ int temp = 0; for(temp = x ; ; temp-- ) { if(x%temp == 0 && y%temp==0) break; } return temp;
}
代码实现
//****************************************************************************************************
// 求两个自然数的最小公倍数 - C++ -
// 最小公倍数 = 两数的乘积 / 最大公约数
//**************************************************************************************************** #include <iostream>
#include <cassert>
#include <stack>
#include <math.h> using namespace std ; int GreatestCommonDivisor(int a, int b)
{ int temp; if(a < b) { // 交换两个数,使大数放在a的位置上。 temp = a; a = b; b = temp; } while(b != 0) { // 利用辗转相除法,直到b为0为止。 temp = a % b; a = b; b = temp; } return a;
} int LeastCommonMultiple(int a, int b)
{ int temp = a * b / GreatestCommonDivisor(a, b); return temp;
} int main()
{ cout << LeastCommonMultiple(318, 87632) << endl; return 0;
}
算法篇----求两数的最大公约数和最小公倍数相关推荐
- 算法:求两个数的最大公约数与最小公倍数的方法
1.计算两个整数的最大公约数方法有两种 第一种是使用<九章算术>中的更相减损术方法,"以少减多,更相减损,求其等也,以等数约之,等数约之,即除也,其所以相减者皆等数之重叠,故以等 ...
- php怎么求最小公倍数,C++_详解C语言求两个数的最大公约数及最小公倍数的方法,求两个正整数的最大公约数nbs - phpStudy...
详解C语言求两个数的最大公约数及最小公倍数的方法 求两个正整数的最大公约数 思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y) ...
- 百度web前端面试题之求两个数的最大公约数和最小公倍数
求两个数的最大公约数和最小公倍数,好像是第三题, 找到如下简洁写法: <1> 用辗转相除法求最大公约数 算法描述: m对n求余传给自己,再次求余, 若余数等于0 则 n 为最大公约数 &l ...
- 【经典100题】 题目16 求两个数的最大公约数和最小公倍数
题目 求两个数的最大公约数和最小公倍数. 最大公约数:指两个或多个整数共有约数中最大的一个 最小公倍数:指两个或多个整数共有倍数中最小的一个 说明:自己没有搞清楚最大公约数和最小公倍数的定义,结果走了 ...
- 求一组数的最大公约数和最小公倍数
求一组数的最大公约数和最小公倍数 问题描述 1.[简单练习]求N个数的最大公约数和最小公倍数 2.[提高练习]Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫Hankso ...
- 求两个数的最小公约数和最小公倍数
题目: 求两个数的最小公约数和最小公倍数 思路: 求最大公约数: 欧几里得在其<几何原本>中提出的欧几里得算法,有称辗转相除法, 具体做法是如果q和r分别是m除以n的商及玉树,m=nq+ ...
- 编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入。 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48
编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入. 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48 #include ...
- c语言用迭代法求最大公约数,用迭代法求两个数的最大公约数和最小公倍数
c语言论文 用迭代法求两个数的最大公约数和最小公倍数 化工09110605 摘要:迭代法是一种循环控制语句和循环结构程序的设计方法.在计算机解决问 题的时候,总希望从复杂的问题中找到规律,并归结为简单 ...
- 求两数的最大公约数算法
最大公约数,也称最大公因数.最大公因子,指两个或多个整数共有约数中最大的一个: a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号: ...
- python编写函数、计算三个数的最大公约数_python 函数求两个数的最大公约数和最小公倍数...
1. 求最小公倍数的算法: 最小公倍数 = 两个整数的乘积 / 最大公约数 所以我们首先要求出两个整数的最大公约数, 求两个数的最大公约数思路如下: 2. 求最大公约数算法: 1. 整数A对整数B进行 ...
最新文章
- 您的主机不满足在启用hyper-v或device_是时候换掉你的旧书桌了!乐歌E5M电动升降桌,坐立换姿不疲劳...
- java future用法_Java中的多线程知识点
- c语言菱形花圃,一种便于自动修剪花圃的电锯支架的制作方法
- [Android] Gradle 安装
- 使用Xshell连接Linux服务器
- python程序运行不出来_python实战演练2:python可执行文件运行不成功怎么办
- S3C2440 lds链接脚本解析
- 谈谈为什么要系统学习算法-开复的一篇文章
- 【渝粤题库】陕西师范大学201831 课程论 作业
- IDEA 常用设置 与 常用操作(一)
- python 中的list 转 array 以及 array 转 list 以及array.array numpy.array
- 倒向随机微分方程(BSDE)解对终端值的依赖性
- C语言---编译器、编辑器
- html制作古诗念奴娇,古诗文《念奴娇 赤壁怀古》原文|注释|赏析 - 可可诗词网...
- 列表(ListNode)
- 2自由度悬架LQR控制
- Nginx编译安装与配置
- Sublime Text正确的打开方式
- SAP S4 Material Management 库存模块 MARD 数据库表读取技术细节介绍
- android 双屏壁纸,高清全面屏双屏壁纸