最大公约数和最小公倍数

来源:互联网 发布:linux的echo命令 编辑:程序博客网 时间:2024/05/10 17:09
1.如果q和r是a除以b的商和余数,即a=b*q+r.则有gcd(a,b)=gcd(b,r).当r=0时,其最大公约数就是b了。

用辗转相除法求最大公约数

int Gcd(int a,int b){int gcd;if(b==0)return a;elsegcd=Gcd(b,a%b);}

利用最大公约数求出最小公倍数

Lcm(a,b)=a*b/(Gcd(a,b))
代码如下:

int Gcd(int a,int b){int gcd;if(b==0)return a;elsegcd=Gcd(b,a%b);}int Lcm(int a,int b){return a*b/(Gcd(a,b));}
求a的b次方mod n.

int modExp(int a,int b,int n){int t,y;t=1;y=a;while(b!=0){if(b%2==1)t=t*y%n;y=y*y%n;b=b/2;}return t;}



原创粉丝点击