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函数有几种写法,下面介绍几种。
这些代码我都对拍过,请大家放心使用。

1.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;
}

2.三目运算符(较快)
 此段代码a、b可以为0

inline int gcd(int a,int b)
{    return b>0 ? gcd(b,a%b):a;
}

3.位运算(超快)
 此段代码a、b不能为0

inline int gcd(int a,int b)
{    while(b^=a^=b^=a%=b);    return a;
}

4.if+while+位运算(超快)
 此段代码a、b可以为0

inline int gcd(int a,int b)
{    if(b) while((a%=b) && (b%=a));    return a+b;
}

5.辗转相除法(较快)
 此段代码a、b不能为0

inline int gcd(int a,int b)
{    if(a%b==0) return b;        else return (gcd(b,a%b));
}

6.gcd库函数(较慢)
 此段代码a、b可以为0

#include <algorithm>
inline int gcd(int a,int b) {    return __gcd(a,b);
}

————————————————
版权声明:本文为CSDN博主「Ljnoit」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Ljnoit/article/details/99319849

【C++】gcd函数的写法相关推荐

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

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

  2. 最大公约数gcd函数简介

    gcd函数简介 最大公因数(英语:highest common factor,hcf)也称最大公约数(英语:greatest common divisor,gcd)是数学词汇,指能够整除多个整数的最大 ...

  3. [js] 举例说明js立即执行函数的写法有哪些?

    [js] 举例说明js立即执行函数的写法有哪些? 1.(function(){ //code }())2.!function(){ //code }()3.!(function(){ //code } ...

  4. 在setTimeout或者ajax等异步方法中回调函数的写法与调用

    常常在setTimeout或者ajax中产生异步代码执行,执行的是回调函数,那么回调函数怎么写呢?这要跟回调函数的函数体内写法有关: 回调函数的函数体内return返回值不是函数: 回调函数的函数体内 ...

  5. 从两道基础二分算法题谈check函数的写法

    第一题:愤怒的牛 loj链接 两道题目都是基础二分的模板题,先看第一题,题意为总共有nnn间牛舍,mmm头牛,要将mmm头牛安排在nnn间牛舍,为防止牛互相攻击,使两头牛之间的最小距离最大!最大! 最 ...

  6. Swop函数的写法及常见错误示例

    Swop函数的写法及常见错误示例 数据交换在编程中十分常见,为方便起见,我们可以将其编写为一个交换函数,在需要时引用函数即可.但需要注意的是,子函数的改变想要影响父函数的数据,必须传指针和解引用.下面 ...

  7. 中gcd函数_欧拉函数φ(n)的计算及欧拉定理

    1 欧拉函数定义 在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数(totient fun ...

  8. Vue中的箭头函数=>目的是用来简化函数的写法的分为三部分:被赋值的变量 传入的参数 返回的数据

    对于多个参数:省略函数体的方法 复杂写法 (参数1, 参数2, -, 参数N) => { 函数声明 }var f = (num1, num2) => { return num1*num2 ...

  9. C++11标准出现后,函数指针写法汇总

    最传统的写法,即C++11之前的函数指针的写法,利用typedef关键字: 如: typedef int(*myFun)(int, int); 调用示例: int sum(int a, int b) ...

  10. MySQL的存储过程和函数简单写法

    什么是存储过程 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法: ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功 ...

最新文章

  1. Linux tail 命令详解
  2. MySQL8.0 - 新特性 - 临时表改进
  3. (3) 百度2011研发工程师笔试卷
  4. python代码学习-数据处理图片加遮挡、噪声、模糊
  5. 论文浅尝 | 使用循环神经网络的联合事件抽取
  6. php curl跨域cookie_PHP curl模拟文件上传(接口请求实现跨域文件中转)
  7. 【Android】Error:Execution failed for task ':app:lint'
  8. frpc客户端 linux安装,centos配置frp服务端,与客户端
  9. TypeError: float() argument must be a string or a number, not 'datetime.date'
  10. 基于机智云平台的微电网光伏模块数据采集装置的设计
  11. 如何用python修改pdf内容_如何利用python将pdf文件转化为txt文件?
  12. 竟领先15% 解密飞行堡垒吃鸡重装版强悍性能
  13. 小红书穿搭博主一万粉丝报价是多少?博主如何提高报价
  14. 基于JAVA+SpringBoot+Mybatis+MYSQL的相册管理系统
  15. 宁撞金钟一下,不打破鼓三千,IT人要有志气,要进就进大的好的公司
  16. html5音频文件生成波形图代码,使用wavesurfer.js显示mp3 audio音频的波形图
  17. 笔记本和linux台式共享网络,怎么把笔记本的网络共享给台式电脑
  18. CCF大会腾源会专场即将召开,聚焦基础软件与开发语言未来发展
  19. 人工智能:为什么很多机器学习和深度学习的论文复现不了?
  20. 智能手机防盗软件测试自学,用谁找回手机几率最大?手机防盗软件功能大PK

热门文章

  1. cmd“不是内部或外部命令,也不是可运行的程序或批处理文件”
  2. 衡量计算机储存容量的常用计量单位是,衡量存储器的单位是什么
  3. 内存卡提示要格式化怎么办?
  4. loadrunner Lr_类函数之 lr_rendezvous()
  5. 蓝桥杯java技巧总结
  6. e书制作工具和反编译工具
  7. html和flash播放器区别,flash播放器和一般播放器有什么区别
  8. R语言安装NLP自然语言分析包
  9. Citrix桌面虚拟化基础搭建教程(持续更新)
  10. sqlserver如何修改服务器排序规则,修改sqlserver2008数据库的排序规则 (转)