gcd函数简介

最大公因数(英语:highest common factor,hcf)也称最大公约数(英语:greatest common divisor,gcd)是数学词汇,指能够整除多个整数的最大正整数。而多个整数不能都为零。例如8和12的最大公因数为4。

求两个整数最大公约数主要的方法:
1.穷举法:分别列出两整数的所有约数,并找出最大的公约数。
2.素因数分解:分别列出两数的素因数分解式,并计算共同项的乘积。
3.短除法:两数除以其共同素因数,直到两数互素时,所有除数的乘积即为最大公约数。
4.辗转相除法:两数相除,取余数重复进行相除,直到余数为0时,前一个除数即为最大公约数。
相关介绍: https://blog.csdn.net/Ljnoit/article/details/104730787

gcd函数写法

C++写gcd函数有几种写法,下面介绍几种。
这些代码我都对拍过,请大家放心使用。

  • while循环
    此段代码a、b可以为0
inline int gcd(int a,int b) {int r;while(b>0) {r=a%b;a=b;b=r;}return a;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

  • 三目运算符
    此段代码a、b可以为0
inline int gcd(int a,int b) {return b>0 ? gcd(b,a%b):a;
}
  • 1
  • 2
  • 3

  • 位运算
    此段代码a、b不能为0
inline int gcd(int a,int b) {while(b^=a^=b^=a%=b);return a;
}
  • 1
  • 2
  • 3
  • 4

原理

(b^=a^=b^=a%=b)相当于(b^=(a^=(b^=(a%=b))))相当于a%=b,b^=a,a^=b,b^=a
其中b^=a,a^=b,b^=a相当于swap(a,b),详见卡常技巧第3条。
所以(b^=a^=b^=a%=b)等价于a%=b,swap(a,b),这就是gcd函数的一般写法。


  • if+while
    此段代码a、b可以为0
inline int gcd(int a,int b) {if(b) while((a%=b) && (b%=a));return a+b;
}
  • 1
  • 2
  • 3
  • 4

  • 辗转相除法
    此段代码a、b不能为0
inline int gcd(int a,int b) {if(a%b==0) return b;else return (gcd(b,a%b));
}
  • 1
  • 2
  • 3
  • 4

  • gcd库函数
    此段代码a、b可以为0
#include <algorithm>
inline int gcd(int a,int b) {return __gcd(a,b);
}
  • 1
  • 2
  • 3
  • 4

http://www.taodudu.cc/news/show-6436998.html

相关文章:

  • s2023gc53次大公约数
  • gcd(int a, int b) //求最大公约数
  • 最大公约数(gcd)计算方法
  • WZOI-297数的三次方根
  • Gcd最大公约数
  • 负的几次方怎么使用计算机,负五次方如何用电脑输入
  • 数论-欧几里得最大公约数- same gcd
  • Java实现欧几里得法求最大公约数GCD
  • 算法之求一个非负整数的平方根
  • 1011 最大公约数GCD
  • BZOJ 2818: Gcd区间内最大公约数 为素数的对数(欧拉函数的应用)
  • 最大公约数(gcd)
  • POJ2429 GCDLCM Inverse(整数分解,由GCD+LCM求a,b)
  • GCD(i,j)求和
  • 51Nod1011 最大公约数GCD(C语言)
  • 最大公约数gcd(m,n)=gcd(n,m%n)之证明
  • I - 最大公约数GCD
  • Java实例15 - 求最大公约数 gcd 辗转相除 欧几里德算法
  • 如何使用汇编语言求最大公约数/共因子/gcd
  • POJ 2429 GCD LCM Inverse (整数分解,由gcd+lcm求a,b)
  • 声网09-15,求1-n的最大公约数gcd
  • 欧几里得算法求m,n(非负整数)的最大公约数,记为gcd(m,n);java版
  • 51 nod 最大公约数之和 (求1~n里面各个数的gcd和 n=1000000)
  • 证明:gcd(m,n)=gcd(n mod m,m)成立,m,n为正整数,m>0. 【Euclid算法证明】
  • 5大电脑软件推荐!每一款都是精心挑选,良心推荐!
  • NFS 与 NAS 是什么关系
  • 网络文件协议(NFS和CIFS)
  • 华为联合openEuler发布全新NFS+协议,实现NAS存储性能与可靠性倍增
  • NFS、FTP、SMB、WebDav、DLNA协议
  • NFS是什么

最大公约数gcd函数简介相关推荐

  1. Problem B: 编写函数:求最大公约数gcd()和最小公倍数lcm() (Append Code) 山东科技大学 oj

    题目描述 辗转相除法,也称欧几里得算法,是求最大公约数的算法.辗转相除法首次出现于欧几里得的<几何原本>(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的<九章算术> ...

  2. gcd函数(最大公约数)(最大公因数)

    gcd函数即为实现求两数最大公约数(最大公因数)的函数 求两个整数最大公约数主要的方法: 1.穷举法:分别列出两整数的所有约数,并找出最大的公约数. 2.素因数分解:分别列出两数的素因数分解式,并计算 ...

  3. C语言求最大公约数GCD的算法(附完整源码)

    C语言求最大公约数GCD的算法 C语言求最大公约数GCD的算法完整源码(定义,实现,main函数测试) C语言求最大公约数GCD的算法完整源码(定义,实现,main函数测试) #include < ...

  4. 声网09-15,求1-n的最大公约数gcd

    声网09-15,求1-n的最大公约数 今天声网25个选择+2编程题,题目全是英文,这道题是第二题. 题目描述大致是输入T组数据,每一组是一个数字n,输出每一个数n其从1到n的最大公约数gcd最大值,举 ...

  5. SQL中 decode()函数简介

    今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即 ...

  6. 【Android 逆向】ptrace 函数 ( C 标准库 ptrace 函数简介 | ptrace 函数真实作用 )

    文章目录 一.C 标准库 ptrace 函数简介 二.ptrace 函数真实作用 一.C 标准库 ptrace 函数简介 ptrace 函数 : 在 C 标准库 中有一个 ptrace 函数 , 该函 ...

  7. TypeScript基础入门 - 函数 - 简介

    2019独角兽企业重金招聘Python工程师标准>>> 转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/ ...

  8. Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略

    Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略 目录 pandas的get_dummies函数简介 pandas.get_dum ...

  9. Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略

    Python之sklearn:LabelEncoder函数简介(编码与编码还原).使用方法.具体案例之详细攻略 目录 LabelEncoder函数的简介(编码与编码还原) Methods LabelE ...

最新文章

  1. Apache HTTP Server Version 2.2 文档中文版
  2. linux无锁化编程--__sync_fetch_and_add系列原子操作函数
  3. 软件工程——团队作业3
  4. struts2中实现文件的上传
  5. glyphicon halflings regular ttf 报错
  6. 折叠玻璃体球囊手术介绍
  7. 基于Consul的分布式锁实现
  8. ubuntu内核损坏或误删除时的系统修复
  9. Socket通信入门小实例
  10. 随心玩玩(一)易语言 大漠插件 制作脚本从入门到摔门而出(更完)
  11. 增强型绿植植被指数_MODIS增强型植被指数EVI与NDVI初步比较-中国科学院.PDF
  12. js调用html打印去掉页眉页脚,js 客户端打印html 并且去掉页眉、页脚的实例
  13. php阿里支付回调逻辑,php 银联支付回调
  14. 斑马打印机驱动安装(ZT410)
  15. python安装后桌面没有显示图标_Win10安装软件后找不到软件图标如何解决
  16. 企业邮箱注册—企业微信邮箱2.0时代正式来临!
  17. 第 7 章 —— 代理模式
  18. AS01 创建固定资产卡片 BAPI_FIXEDASSET_CREATE1
  19. Excel如何从单元格中提取中文汉字
  20. exchange 网页无法连接服务器,exchange2016 无法连接服务器

热门文章

  1. 从数据库中查找数据并按首字母排序
  2. 计算机基础原理习题,《计算机基础教学资料》第1章计算机基础原理习题.doc
  3. centos8操作系统初始化设置
  4. JS 在元素后面添加新的元素
  5. 网站推荐 | 那些小众却精美的网站
  6. 有关DSP2812与SPI接口DA芯片的通信(AD5640,AD5682)
  7. java培训师简历怎么写,逆袭面经分享
  8. python入门代码指南教程书籍推荐2020总结全集汇总
  9. 轻型载货汽车后悬架钢板弹簧设计
  10. 省、市、区、街道行政区数据以及行政区数据合并问题