辗转相除法求最大公约数
2012-02-15 21:42
661 查看
辗转相除法百度百科解释:
两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 − 105 = 147,所以147和105的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公约数
辗转相除法有很多应用,它甚至可以用来生成全世界不同文化中的传统音乐节奏。在现代密码学方面,它是RSA算法(一种在电子商务中广泛使用的公钥加密算法)的重要部分。它还被用来解丢番图方程,寻找满足中国剩余定理的数,或者求有限域的倒数。辗转相除法还可以用来构造连分数,在施图姆定理和一些整数分解算法中也有应用。辗转相除法是现代数论中的基本工具。
辗转相除法处理大数时非常高效,它需要的步骤不会超过较小数的位数(十进制下)的五倍。加百利·拉梅(Gabriel Lamé)于1844年证明了这点,开创了计算复杂性理论。
两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 − 105 = 147,所以147和105的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公约数
辗转相除法有很多应用,它甚至可以用来生成全世界不同文化中的传统音乐节奏。在现代密码学方面,它是RSA算法(一种在电子商务中广泛使用的公钥加密算法)的重要部分。它还被用来解丢番图方程,寻找满足中国剩余定理的数,或者求有限域的倒数。辗转相除法还可以用来构造连分数,在施图姆定理和一些整数分解算法中也有应用。辗转相除法是现代数论中的基本工具。
辗转相除法处理大数时非常高效,它需要的步骤不会超过较小数的位数(十进制下)的五倍。加百利·拉梅(Gabriel Lamé)于1844年证明了这点,开创了计算复杂性理论。
public class Gongyueshu { //辗转相除法 /*比如35、30,30和35的最大公约数为5。 因为5=35-30,所以5与30的最大公约数为5,一相减,数的范围就缩小了, 不断做这样的操作,直到其中的某一个数为0,那么剩下的那个不等于0的数就是两个数的最大公约数*/ public static void main(String args[]) { i=30;j=35; if(i==j) { System.out.println("最大公约数为:"+i); return; } else { while(i==0||j==0) { if(i>j) { i-=j; } else { j-=i; } int result=i>j?i:j; System.out.println("两个数的最大公约数为:"+result); return; } } } }
相关文章推荐
- 求最大公约数--辗转相除法
- 2用辗转相除法计算两个整数的最大公约数
- 用“辗转相除法”求最大公约数
- I - 辗转相除法求最大公约数
- [洛谷P1029]最大公约数与最小公倍数问题 题解(辗转相除法求GCD)
- 【牛客网】【网易2016研发工程师编程题】【辗转相除法求最大公约数】
- Java-辗转相除法(求最小公倍数与最大公约数)
- 利用辗转相除法计算最大公约数与最小公倍数
- 辗转相除法求最大公约数-C
- 递归实现最大公约数:辗转相除法
- 辗转相除法求两个数的最大公约数
- 习题:求两个数的最大公约数-辗转相除法
- 辗转相除法求最大公约数
- I - 辗转相除法求最大公约数
- 辗转相除法 最大公约数
- 欧几里德算法(辗转相除法):求两个整数最大公约数
- 给定两个数m,n,使用欧几里得的辗转相除法求出它们的最大公约数
- 辗转相除法 求 两个数的 最大公约数 和 最小公倍数
- 算法.数学.初级.求最小公倍数--(利用最大公约数的辗转相除法),powerbuilder powerscript实现
- 最大公约数-辗转相除法