最大公约数和最小公倍数
2014-05-30 16:33
232 查看
1.最大公约数
(1)辗转相除法
(2)辗转相除法的减法版本
(3)辗转相除法的递归版本
(4)辗转相除法的减法+递归版本
(5)辗转相除法(编程之美)
2.最小公倍数
![](http://img.blog.csdn.net/20140530180242468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHo1MDM0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(1)辗转相除法
int gcd(int a,int b) { while(b) { int tmp=b; b=a%b; a=tmp; } return a; }
(2)辗转相除法的减法版本
int gcd(int a,int b) { if(a==0)return b; while(b) { if(a>b)a-=b; else b-=a; } return a; }
(3)辗转相除法的递归版本
int gcd(int a,int b) { return b?gcd(b,a%b):a; }
(4)辗转相除法的减法+递归版本
int gcd(int a,int b) { if(a<b)return gcd(b,a); return b?gcd(a-b,b):a; }
(5)辗转相除法(编程之美)
int gcd(int a,int b) { if(a<b)return gcd(b,a); if(b==0)return a; else { if((a&1)==0) { if((b&1)==0)return (gcd(a>>1,b>>1)<<1); else return gcd(a>>1,b); } else { if((b&1)==0)return gcd(a,b>>1); else return gcd(a-b,b); } } }
2.最小公倍数
int gcd(int a,int b) { return b?gcd(b,a%b):a; } int lcm(int a,int b) { return a*b/gcd(a,b); }
相关文章推荐
- JAVA :最小公倍数与最大公约数
- 最大公约数与最小公倍数的总结
- 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 最大公约数: 最小公倍数
- 最大公约数gcd 最小公倍数
- ACM内部函数--数学问题--最大公约数最小公倍数
- java小算法—输入两个正整数m和n,求其最大公约数和最小公倍数
- 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 最小公倍数和最大公约数
- C/C++训练1---最大公约数与最小公倍数
- C/C++训练1---最大公约数与最小公倍数
- wikioi 1012最大公约数和最小公倍数【根据最大公约数和最小公倍数求原来的两个数a、b】
- uva 11388 最大公约数与最小公倍数的关系
- 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 输入两个正整数,求它们的最大公约数和最小公倍数。
- C++作业7—最大公约和和最小公倍数/特殊三位数
- HDOJ 1713 相遇周期 (最大公约数与最小公倍数)
- 最大公约数gcd与最小公倍数lcm
- 基于python语言:已知最大公约数与最小公倍数,反求符合条件的两个数
- 最小公倍数 最大公约数