`

最大公约数

F# 
阅读更多

 k =  f(x, y)求最大公约数

 1. 假设x = m*x1 m为质数且 y%m!=0, 所以k = f(m*x1, y) = f(x1, y)

 2. 如果x = m*x1, y = m*y1, 所以 k = f(m*x1, m*y1) = m* f(x1, y1)

 3. 如果不同时满足上述2点 则 k = f(x, y) = f(y, x-y) (x>=y)

 

 

private static boolean isEven(int num) {
		return num%2==0 ? true : false;
	}
	
	private static int gcd(int m, int n) {
		if(m<n) {
			return gcd(n, m);
		} 
		if(n==0){
			return m;
		}
		if(isEven(m)) {
			if(isEven(n)){
				return 2 * gcd(m>>1, n>>1);
			} else {
				return gcd(m>>1, n);
			}
		}
		else {
			if(isEven(n)) {
				return gcd(m, n>>1);
			} else {
				return gcd(n, m-n);
			}
		}
	}

 

分享到:
评论

相关推荐

    如何用c语言求最大公约数和最小公倍数

    根据提供的文件信息,本文将详细解释如何使用C语言来实现最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)的计算。 ### 最大公约数(GCD) #### 概念 最大公约数是指两个...

    利用三种算法求最大公约数

    本文将深入探讨三种不同的方法来计算两个整数的最大公约数:分解质因数法、连续整除法以及欧几里得算法,并结合提供的代码文件进行解析。 1. **分解质因数法**: 分解质因数法是通过将两个数分别分解为质因数,...

    欧几里德算法求最大公约数——C++代码

    欧几里得算法,也称为辗转相除法,是计算两个正整数最大公约数(Greatest Common Divisor, GCD)的一种经典方法。该算法基于以下原理:两个正整数a和b(a&gt;b)的最大公约数等于a除以b的余数c和b之间的最大公约数。...

    计算最大公约数C语言代码

    用辗转相除法,计算最大公约数的C语言代码。

    求大整数的最大公约数

    本文件"求大整数的最大公约数"是用C++语言编写的一个大整数类,专门用于计算两个大整数的最大公约数(Greatest Common Divisor, GCD)。 大整数类通常基于数组或链表结构来存储多位数,以适应任意长度的整数。在这...

    最大公约数算法

    最大公约数(Greatest Common Divisor,GCD)算法是计算两个或多个整数的最大公共除数的数学方法。在编程领域,这个概念被广泛应用于优化算法、编码和解决数学问题。本文将深入探讨最大公约数算法的原理、常见的实现...

    FPGA求最大公约数及最小公倍数verilog

    基于FPGA开发板的两位数求最大公约数和最小公倍数的设计,该设计中利用辗转相减法求得公约数与公倍数,且两个数的数值可通过按键修改,设计灵活可靠。该设计基于vivado开发,并带有testbench文件,方便仿真学习。

    C语言求两个数的最大公约数和最小公倍数

    在IT领域,尤其是在编程与算法设计中,求解两个数的最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM)是基础而重要的数学概念,广泛应用于各种计算机科学场景,如数据...

    求最大公约数

    最大公约数,也称为最大公因数,是指两个或多个整数共有约数中最大的一个。例如,数字8和12的公约数有1、2、4,其中最大的公约数是4。 ### 二、求最大公约数的常用方法 求解最大公约数的方法有很多种,常见的包括...

    用LabVIEW求最大公约数和最小公倍数

    用LabVIEW求最大公约数和最小公倍数。可以自行选择数据。

    对求最大公约数进行白盒测试

    ### 对求最大公约数进行白盒测试的知识点详解 #### 实验目的 - **掌握静态白盒测试方法及一般要求**:了解如何通过分析源代码结构来发现软件缺陷,包括但不限于代码审查、符号执行等技术。 - **掌握白盒测试用例的...

    java最大公约数

    java最大公约数是指两个或多个数的最大公因数,例如,12和15的最大公约数是3,因为3是它们的最大公因数。java中可以使用欧几里德算法来计算最大公约数,该算法的思路是:较大的数除以较小的数,然后将较小的数作为下...

    python 输入两个正整数计算最大公约数和最小公倍数 示例

    python 输入两个正整数计算最大公约数和最小公倍数 示例

    Verilog求最大公约数

    在这个特定的项目中,我们关注的是如何使用Verilog来实现一个计算两个数最大公约数(Greatest Common Divisor, GCD)的功能。 最大公约数是指能同时整除两个或两个以上整数的最大正整数。求解最大公约数有多种方法...

    最大公约数的递归解法cpp

    最大公约数的递归解法,这是一个cpp程序,运行正常,是求输入的2个数的最大公约数的递归算法

    公因数、最大公因数练习题精选.doc

    3.如果 A=a×b×c×d,B=b×d×e,那么 A 和 B 的最大公约数就是( )。 答案:b×d 分析:A=a×b×c×d,B=b×d×e,故 A 和 B 的最大公约数是 b×d。 ★★★解决问题 1. 帮 5(1)班同学排队。男女生分别排队,...

    求两数最大公约数求两数最大公约数

    最大公约数(Greatest Common Divisor,GCD)也被称为最大公因数,是两个或多个非零整数共有约数中最大的一个。在数学上,最大公约数可以用多种方法来计算,例如欧几里得算法、辗转相除法、更相减损法等。 1. **...

    获取两个数的最大公因数和最小公倍数

    用碾压法求出两个数的最大公因数,然后将剩下的分子连乘再乘以最大公因数即可获得最小公倍数

    基础算法-python求最大公约数和最小公倍数

    python求最大公约数和最小公倍数 #辗转相除法 def gcd(a,b): #最大公约数函数,且最小公倍数 = 两个数相乘 / 最大公约数 if b == 0: return a else: return gcd(b,a%b) print("请输入两个数:") j,k = input()....

    最大公约数与最小公倍数程序

    最大公约数(Greatest Common Divisor, GCD),也称为最大公因数(Greatest Common Factor, GCF),是指两个或多个整数共有因子中最大的一个。在本程序中,我们关注的是两个整数的最大公约数。 **计算方法:** - **...

Global site tag (gtag.js) - Google Analytics