关于gcd函数解最大公约数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于gcd函数解最大公约数相关的知识,希望对你有一定的参考价值。

数学知识:由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积.即(a,b)×[a,b]=a×b.所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数.
例如,求[18,20],即得[18,20]=18×20÷(18,20)=18×20÷2=180.
求几个自然数的最小公倍数,可以先求出其中两个数的最小公倍数,再求这个最小公倍数与第三个数的最小公倍数,依次求下去,直到最后一个为止.最后所得的那个最小公倍数,就是所求的几个数的最小公倍数.

 

编程知识:

int gcd(int a,int b){  //声明函数
if (b==0) return a;
else return gcd(b,a%b);}    

下面是完整算法:                                            下面是写法:
int gcd(int a,int b) # include<stdio.h>
{ int gcd(int a,int b)
    int c,r;                                     {if(b==0) return a;                                              
if(a<b){c=a;a=b;b=c;} else return gcd(b,a%b);}
r=a%b; int main
while(r) {}
{
a=b;b=r;r=a%b;
}
return b;
}

下面是用法:

gcd(x,y) 表示x和y的最大公约数






























以上是关于关于gcd函数解最大公约数的主要内容,如果未能解决你的问题,请参考以下文章

数论模板总结 -- 未完待续

浅谈扩展欧几里得算法(exgcd)

利用扩展欧几里得求最小非负整数解

扩展欧几里得

C语言编程

luogu P1082 同余方程题解