最大公约数gcd函数简介
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函数简介相关推荐
- Problem B: 编写函数:求最大公约数gcd()和最小公倍数lcm() (Append Code) 山东科技大学 oj
题目描述 辗转相除法,也称欧几里得算法,是求最大公约数的算法.辗转相除法首次出现于欧几里得的<几何原本>(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的<九章算术> ...
- gcd函数(最大公约数)(最大公因数)
gcd函数即为实现求两数最大公约数(最大公因数)的函数 求两个整数最大公约数主要的方法: 1.穷举法:分别列出两整数的所有约数,并找出最大的公约数. 2.素因数分解:分别列出两数的素因数分解式,并计算 ...
- C语言求最大公约数GCD的算法(附完整源码)
C语言求最大公约数GCD的算法 C语言求最大公约数GCD的算法完整源码(定义,实现,main函数测试) C语言求最大公约数GCD的算法完整源码(定义,实现,main函数测试) #include < ...
- 声网09-15,求1-n的最大公约数gcd
声网09-15,求1-n的最大公约数 今天声网25个选择+2编程题,题目全是英文,这道题是第二题. 题目描述大致是输入T组数据,每一组是一个数字n,输出每一个数n其从1到n的最大公约数gcd最大值,举 ...
- SQL中 decode()函数简介
今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即 ...
- 【Android 逆向】ptrace 函数 ( C 标准库 ptrace 函数简介 | ptrace 函数真实作用 )
文章目录 一.C 标准库 ptrace 函数简介 二.ptrace 函数真实作用 一.C 标准库 ptrace 函数简介 ptrace 函数 : 在 C 标准库 中有一个 ptrace 函数 , 该函 ...
- TypeScript基础入门 - 函数 - 简介
2019独角兽企业重金招聘Python工程师标准>>> 转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/ ...
- Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略
Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略 目录 pandas的get_dummies函数简介 pandas.get_dum ...
- Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略
Python之sklearn:LabelEncoder函数简介(编码与编码还原).使用方法.具体案例之详细攻略 目录 LabelEncoder函数的简介(编码与编码还原) Methods LabelE ...
最新文章
- Apache HTTP Server Version 2.2 文档中文版
- linux无锁化编程--__sync_fetch_and_add系列原子操作函数
- 软件工程——团队作业3
- struts2中实现文件的上传
- glyphicon halflings regular ttf 报错
- 折叠玻璃体球囊手术介绍
- 基于Consul的分布式锁实现
- ubuntu内核损坏或误删除时的系统修复
- Socket通信入门小实例
- 随心玩玩(一)易语言 大漠插件 制作脚本从入门到摔门而出(更完)
- 增强型绿植植被指数_MODIS增强型植被指数EVI与NDVI初步比较-中国科学院.PDF
- js调用html打印去掉页眉页脚,js 客户端打印html 并且去掉页眉、页脚的实例
- php阿里支付回调逻辑,php 银联支付回调
- 斑马打印机驱动安装(ZT410)
- python安装后桌面没有显示图标_Win10安装软件后找不到软件图标如何解决
- 企业邮箱注册—企业微信邮箱2.0时代正式来临!
- 第 7 章 —— 代理模式
- AS01 创建固定资产卡片 BAPI_FIXEDASSET_CREATE1
- Excel如何从单元格中提取中文汉字
- exchange 网页无法连接服务器,exchange2016 无法连接服务器