文章标题 欧几里得求两数的最大公约数,最小公倍数。
来源:互联网 发布:手机玩电音的软件 编辑:程序博客网 时间:2024/06/08 07:32
求有两个数a,b的最大公约数。
假设a>b;
设 a = kb + c;
设 a 和 b 的最大公约数为 d ,则可得
a = p * d; b = q * d ;
则 c = a - kb = p*d - k*b = p*d -k*q*d =( p - k*q ) * d;
因为p,q 互质,所以p 与 p - k*q 互质,所以c,b的最大公约数为d。
所以求a、b的最大公约数就是就b,与a%b的最大公约数,直到整除为止。
下面给出两种方法:
递归:
int gcd ( int a, int b ) { if ( b==0 ) return a; return gcd ( b, a%b );}
循环体
int gcd ( int a, int b ) { while ( b!=0 ) { int temp=a%b; a=b; b=temp; } return a;}
当求出a,b的最大公约数后,就很容易求出两数的最小公倍数了
只要
gbd ( a , b ) =a/gcd(a,b)*b
先除再乘是防止爆int
0 0
- 文章标题 欧几里得求两数的最大公约数,最小公倍数。
- 欧几里得求最大公约数,最小公倍数
- 欧几里得算法--最大公约数&最小公倍数
- 欧几里得求最大公约数(最小公倍数)
- [复习]欧几里得 最大公约数与最小公倍数
- 用欧几里得算法实现两个数的最大公约数和最小公倍数
- 求两数的最大公约数和最小公倍数
- 求两数的最大公约数与最小公倍数
- noip2009 hankson的趣味题 (扩展欧几里得求最大公约数,最小公倍数与最大公约数)
- 使用欧几里得定理求最大公约数和最小公倍数
- 使用欧几里得定理求最大公约数和最小公倍数
- HDOJ 最小公倍数(欧几里得算法求最大公约数)
- 欧几里得算法求解最大公约数和最小公倍数
- 欧几里得辗转相除求最大公约数最小公倍数
- 求两数的最大公约数和最小公倍数的方法
- C语言实现求两数的最大公约数最小公倍数
- 求两数最大公约数和最小公倍数
- 求两数最大公约数和最小公倍数
- m序列
- SVN服务器搭建和使用(三)
- Reverse Integer
- struts2原文件struts2-blank.war学习
- 【BSOJ1724】【bzoj3032】TYVJ P1924 【NOIP2013模拟】七夕祭
- 文章标题 欧几里得求两数的最大公约数,最小公倍数。
- 新的征程
- HDU 5874 Friends and Enemies
- JDK简单安装
- 从JAVA行为参数化到 JAVA8 lamada,方法引用
- 397. Integer Replacement
- HDU 3555
- Redis系列----(二)redis中的数据结构类型
- Proteus 7.8 与 Keil 4 实现联调