最大公约和最小公倍数
2013-11-03 13:08
281 查看
求最大公约数和最小公倍数的方法
1:可以用整数的因子分解,求最大公约数和最小公倍数,设
a=p1^r1P2^r2...pk^rk, b=p1^s1p2^s2....pk^sk,其中p1,p2,...pk是不同的素数,r1,r2,..rk,s1,s2,..sk是非负数,则
gcd(a,b)=p1^min(r1,s1)p2^min(r2,s2)....pk^min(rk,sk),
lcm(a,b)=p1^max(r1,s1)p2^max(r2,s2)....pk^max(rk,sk).
2:求最大公约数常用方法是辗转相除法又叫做欧几里德算法
其原理是:设a=qb+r.其中a,b,q,r都是整数,则 gcd(a,b) = gcd(b,r).
最大公约数函数
最小公倍数函数
1:可以用整数的因子分解,求最大公约数和最小公倍数,设
a=p1^r1P2^r2...pk^rk, b=p1^s1p2^s2....pk^sk,其中p1,p2,...pk是不同的素数,r1,r2,..rk,s1,s2,..sk是非负数,则
gcd(a,b)=p1^min(r1,s1)p2^min(r2,s2)....pk^min(rk,sk),
lcm(a,b)=p1^max(r1,s1)p2^max(r2,s2)....pk^max(rk,sk).
2:求最大公约数常用方法是辗转相除法又叫做欧几里德算法
其原理是:设a=qb+r.其中a,b,q,r都是整数,则 gcd(a,b) = gcd(b,r).
最大公约数函数
int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); }
最小公倍数函数
int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); }
int lcm(int x,int y)
{
return x/gcd(x,y)*y;
}
相关文章推荐
- 最大公约数 与 最小公倍数
- 求最小公倍数和最大公约数
- 最大公约数和最小公倍数
- 求多个数的最小公倍数或最大公约数
- java 最大公约数 最小公倍数 用函数实现
- 求两个数的最小公倍数和最大公约数
- 最小公倍数和最大公约数
- 最大公约数、最小公倍数
- c语言求最小公倍数,最大公约数
- 求a与b的最大公约数与最小公倍数
- HDU1019-多个数的最小公倍数,最大公约数
- 最大公约数与最小公倍数
- 最大公约数和最小公倍数
- 最大公约数和最小公倍数
- 最小公倍数和最大公约数
- c++第7次实验:最大公约数和最小公倍数
- 调用函数求两个数最大公约数和最小公倍数
- Java最大公约数和最小公倍数
- 求2个数的最小公倍数和最大公约数
- 最大公约数与最小公倍数