GCD _ LCM 是给你两个数A B 的最大公约数, 以及最小公倍数

  the greatest common divisor and the least common multiply !

  最大公约数最简单、最常见的算法,就是辗转相除法   :

假设 GCD(A , B) ; A / B = P ;  A % B = Q;  那么 A =  B P + Q;

  GCD(B, Q);

  GCD (A , B)  % GCD (B , Q) = 0     :  因为 A  的表达式当中包括了 B 、 Q;

  同理,我们可以由 : Q = A - BP;

  GCD (B , Q)  % GCD (A , B) = 0;

  所以说两者相等, 得到了辗转相除法求得GCD 的方法, 那么 LCM 如何求得呢??

  通过A B 的乘法因子来看: GCD 是相同的因子, LCM 是相同的因子只是取一个,

两个想乘,刚刚好可以互补, 即 GCD * LCM = A*B;

  所以说最大公约数可以通过最小公倍数来求得!

  那么代码 !!:::

  

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <list>
#include <map>
#include <stack>
#include <set>
using namespace std; int GCD(int a, int b){
if(b == ) return a;
else return GCD(b, a % b);
} int main()
{
cout << "Hello world!" << endl;
printf("GCD : %d , LCM : %d \n", GCD(, ), * / GCD(, ));
printf("GCD : %d , LCM : %d \n", GCD(, ), * / GCD(, ));
printf("GCD : %d , LCM : %d \n", GCD(, ), * / GCD(, )); return ;
}

  但是有些时候, 我们需要注意, 使用 long long int ,   防止部分题目进行卡数据, 注意题目中的数据范围

最新文章

  1. Java 多线程编程
  2. nodejs review-01
  3. REACT day 1
  4. ios中图片拉伸用法
  5. Java魔法堂:枚举类型详解
  6. Bestcoder13 1003.Find Sequence(hdu 5064) 解题报告
  7. Android中Parcelable接口用法
  8. Linux中如何查看文件的最初创建时间
  9. Hadoop学习地址
  10. 关于vim打开中文文件出现乱码问题
  11. Lua与C/C++交互问题
  12. 设置ulabel的行间距
  13. CSS基础:层叠顺序和层叠上下文
  14. 非常不错的svg教程
  15. 引擎设计跟踪(九.14.2 final) Inverse Kinematics: CCD 在Blade中的实现
  16. 一个小误区 JS中的contains
  17. ubuntu 14.04 安装 eclipse
  18. Zookeeper命令行world
  19. [转]MySQL实现分页查询
  20. PAT 1032 Sharing[hash][链表][一般上]

热门文章

  1. python 处理 json 四个函数dumps、loads、dump、load的区别
  2. 第七章 python基础之函数,递归,内置函数
  3. Java 多线程:什么是线程安全性
  4. js优先队列的定义和使用
  5. 用单元测试来调试SilverFish AI
  6. [go]redis基本使用
  7. NetUtils网络连接工具类
  8. openstack基于卷快照恢复卷
  9. linux下编译安装ACE-6.4.2(adpative communication environment)
  10. linux 基础学习常见问题