算法篇----求两数的最大公约数和最小公倍数
一、最大公约数与最小公倍数
最大公约数,属于数论所探究的内容。
最大公约数可以通过下面的三种方法求出来。
最小公倍数呢,它与最大公约数的乘机为所求数之积。
比如求 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;
}
运行结果:
②辗转相减法
代码块:
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进行 ...
最新文章
- ws2_32.lib 网络编程
- Provisioning profile XXXX can't be found
- SVN的安装和启动SVN的安装
- android 6.0 sd卡读写权限,Android 6.0 读写SD卡权限问题
- str()和repre()的区别
- 让威胁管理跟上数据中心奔跑的速度
- 移动设备 (Android),How-To Geek正在寻找专注于移动设备(Android,iOS,可穿戴设备等)的作家 | MOS86...
- 写出gradle风格的groovy代码
- java第一阶段知识_第一阶段 Java语言(下)
- Bootstrap3 动态模态对话框
- mysql undrop_MySQL · 数据恢复 · undrop-for-innodb
- python菜鸟教程网-Python JSON
- 如何对大数据进行分析
- 真正开源erp,良心团队。点可云ERP
- js分页插件:首页,上页,快退,页码,快进,下页末页,跳转,使用模板,灵活自由
- SpringBoot整合tkMybatis基础教程
- 关于ViewPager.PageTransformer的一些理解
- 【数字水印】基于matlab DFT数字水印嵌入提取攻击【含Matlab源码 2320期】
- 用hidusb.sys还是winusb.sys读写一个只有In/Out Interrupt Endpoints的STM32 USB设备?
- java地图点线面_点线面类型互转
热门文章
- 金蝶EAS初始化操作手册之科目表
- 【去水印】最简单的百度图片去水印
- Redis(二)Redis客户端的使用
- 《个人信息安全规范 (2019-6-21) 》征求意见稿的最新变化
- Electron技术架构
- 0到1使用spring-security(Spring的安全认证框架)
- 微信小程序毕业设计 基于微信选修课报名抢座小程序系统开题报告
- 【Maven】阿里镜像仓库地址
- 小米笔记本linux指纹,小米笔记本Air 13.3寸指纹版(128GB)如何bios设置u盘启动
- MFC控件-Spin控件和编辑框控件Edit Control绑定使用