gcd euclid

What is GCD?

什么是GCD?

It is called as a greatest common factor or generally called as a highest common factor (HCF). For example, if we take two numbers 4 and 6 then the factors of these numbers are 1,2,2 and 1,2,3 so the common factors are 2 and 1 and multiplication of these common factors is what we call as gcd of these two numbers which in the above case is 2 X 1 =2 so GCD (4,6) = 2.

它被称为最大公因子或通常被称为最高公因子(HCF)。 例如,如果我们取两个数字46,那么这些数字的因数是1,2,21,2,3,因此公因数是21 ,这些公因数的乘积就是我们所说的gcd这两个数字在上面的情况下是2 X 1 = 2,所以GCD(4,6)= 2

Basic Euclidean Algorithm for GCD:

GCD的基本欧几里得算法:

The above algorithm stands on two basic facts which are stated below:

上面的算法基于以下两个基本事实:

  • If we try to decrease the bigger number by subtracting that number by the small then the gcd remains unaffected.

    如果我们尝试通过将数字减去小数字来减小数字,则gcd不会受到影响。

  • The base case in our algorithm is when we divide the smaller number and remainder comes out to be zero then our algo stops.

    我们算法的基本情况是,当我们将较小的数除而余数变为零时,算法停止。

Description: So basically avoid all the brute force approaches we can perform the required task in O(log(min(a,b)) time using Euclid's algorithm which is an optimized approach as compared to the other approaches.

描述:因此,基本上避免了所有蛮力方法,我们可以使用Euclid算法O(log(min(a(b,b)))时间内完成所需的任务,这是与其他方法相比的一种优化方法。

C ++程序使用EUCLID的算法查找两个数字的GCD (C++ program to find GCD of two numbers using EUCLID'S ALGORITHM)

#include<iostream>
using namespace std;
int euclidalgo(int x,int y)
{if(x==0)
return y;
return euclidalgo(y%x,x);
}
int main()
{int a,b;
cout<<"Enter two numbers whose GCD is to be calculated: ";
cin>>a>>b;
cout<<"GCD of these numbers is: "<<euclidalgo(a,b)<<endl;
return 0;
}

Output

输出量

Enter two numbers whose GCD is to be calculated: 4 6
GCD of these numbers is: 2

翻译自: https://www.includehelp.com/algorithms/find-the-gcd-greatest-common-divisor-of-two-numbers-using-euclids-algorithm.aspx

gcd euclid

gcd euclid_使用EUCLID的算法找到两个数字的GCD(最大公约数)相关推荐

  1. 工具类:关于如何找到两个List数组中不同的数据的算法!

    找到两个List数组中不同的数据的算法! import java.util.ArrayList; import java.util.HashMap; import java.util.List; im ...

  2. python 找到两个排序数组的中位数_Python查找两个有序列表中位数的方法【基于归并算法】...

    本文实例讲述了Python查找两个有序列表中位数的方法.,具体如下: 今天做到的一个机试题目,很简单,这里简单记录一下: 我用的是归并的思想,当然还可以用递归的方法,下面是具体实现: #!usr/bi ...

  3. Python算法题----在列表中找到和为s的两个数字

    列表data的值为[1, 3, 4, 5, 8, 9, 11],找出这个列表中和为13的两个数字的所有组合.这个好找,上过幼儿园大班的,估计都能找出来.4+9=13, 5+8=13.如何用python ...

  4. 暴力 gcd __gcd (详解)C语言求两个数的最大公约数

    首先我们要先知道gcd是什么东西? GCD作为缩写意义有多种.它通常表示最大公约数(greatest common divisor,简写为gcd:或highest common factor,简写为h ...

  5. 算法:两种步长的希尔排序算法

    算法:两种希尔排序算法 1 /** 2 * 希尔排序 3 * 不同步长的算法 4 * @author mackxu 5 * 6 */ 7 class ShellSort { 8 private int ...

  6. 数据结构与算法--有序数组中找出和为s的两个数字

    有序数组中找和为s的两个数字 题目:输入一个递增排序的数组array, 和一个数字s, 在数组中找出两个数,使得这两个数的和是s,如果有多对,输出一对即可. 最简单方案 双循环,每次获取一个数据,和数 ...

  7. 数据结构之图:加权有向图与dijkstra算法找到最短路径,Python——28

    加权有向图与dijkstra算法找到最短路径 加权有向图的构造 最短路径问题与最短路径树 最短路径问题(The shortest path problem)定义 最短路径可以是时间花费最短,也可以是距 ...

  8. 面试题解:输入一个数A,找到大于A的一个最小数B,且B中不存在连续相等的两个数字...

    玄魂工作室秘书 [玄魂工作室] 昨天发的算法有一处情况没考虑到,比如加一后有进位,导致又出现重复数字的情况,修正后今天重新发一次. 比如输入99,那B应该是101 因为100有两个连续相当的0. 基本 ...

  9. python输入两个整数a和b、比较两者的大小、使得a大于b_面试题解:输入一个数A,找到大于A的一个最小数B,且B中不存在连续相等的两个数字...

    玄魂工作室秘书 [玄魂工作室] 昨天发的算法有一处情况没考虑到,比如加一后有进位,导致又出现重复数字的情况,修正后今天重新发一次. 比如输入99,那B应该是101 因为100有两个连续相当的0. 基本 ...

  10. SLAM算法实习生——两周工作经验总结

    SLAM算法实习生--两周工作经验总结 首先,非常幸运能够以SLAM算法工程师的身份实习 来总结一下这两周的工作情况,搭建并测试了以下几种slam平台: 1, ROS indigo+ORB-SLAM2 ...

最新文章

  1. 如何利用自定义注解放行 Spring Security 项目的接口
  2. 在线IDE之关键字另色显示
  3. 搜索推荐中的召回匹配模型综述(三):基于匹配函数学习的深度学习方法
  4. 总共4行代码使用fastxml.json实现Java对象的序列化和反序列化
  5. vue vuex 大型项目demo示例
  6. ktv管理系统_KTV经营管理的几个原则
  7. Mac - 苹果电脑mac系统释放硬盘空间方法汇总
  8. C++ 的变量书写规则探讨
  9. iOS 移动端overflow:auto 滚动不平滑及bug处理
  10. 计算机都要学python吗_大学计算机要不要学python?
  11. 软件测试人员的职业发展之路,写给那些还在迷茫的测试人
  12. 单片机音乐倒数计时器c语言,基于单片机音乐倒数计时器设计.doc
  13. IISPUT上传漏洞
  14. vmware 删除后安装不了,‍vmware workstation.msi failed
  15. 【软件应用开发】小米便签APP维护开发
  16. java openxml word_使用OpenXML操作Office文档
  17. asp毕业设计——基于asp+access的会员管理系统设计与实现(毕业论文+程序源码)——会员管理系统
  18. sonar入门:全网最全的概念解析与安装
  19. parse_depend_manifests Could not find dependent assembly LMicrosoft.Windows.Common-Controls
  20. 《赋能》的读后感作文2800字

热门文章

  1. python模拟点击下一页_Python使用selenium模拟点击,进入下一页(三)
  2. 理解服务器证书 CASSL
  3. perl学习笔记-----------------------(8)
  4. 服务器开机硬盘raid连接错误,服务器磁盘阵列常见问题及解决方法
  5. 2021微信红包封面免费领取最新攻略 春节免费微信红包封面序列号大全
  6. 紫罗兰永恒花园rust简谱_みちしるべ简谱-紫罗兰永恒花园ed
  7. Gym 100015 F Fighting for Triangles 博弈,状压dp
  8. SAP-WEB-GUI无法上传excel问题
  9. Chapter 2 multi-armed Bandit
  10. Springboot官网学习(5、深入Springboot之SpringApplication【五自定义横幅】)