给定两个正整数m和n,求它们的最大公因子,即能够同时整除m和n的最大正整数。
E1.【求余数】
以n除m并令r为所得余数。(我们将有0<=r<n)
E2.【余数为零?】若r=0,算法结束,n即为答案。
E3.【减少】置mß---n,nß-r,并返回步骤E1
package com.javaeye.rsrt;
/**
* @description 求两个数的最大公因子
* @author nishiting
* @date 2010-9-15
*/
public class CommonFactor {
/**
* @param arags
*/
public static int result=0;
public static void main(String[] args) {
int a = 77;
int b = 21;
CommonFactor cf = new CommonFactor();
cal c = cf.new cal();
c.calculate(a, b);
System.out.println(a + "与" + b + "的最大公因子为:" + ((Integer)result).toString());
}
private class cal {
public cal() {
}
public void calculate(int a, int b) {
// 如果a比b小,那么a与b交换
if (a < b) {
int temp = a;
a = b;
b = temp;
}
if (a % b == 0) {
result = b;
} else {
int r = a % b;
a = b;
b = r;
calculate(a, b);
}
}
}
}
分享到:
相关推荐
在本篇博客中,作者通过使用`while`循环来实现计算两个数的最大公因子。这是一种基础的算法实现,通常在数学和计算机科学的入门课程中被教授。 首先,我们需要了解`while`循环的基本结构。`while`循环是一种条件...
在本主题中,我们将深入探讨如何使用辗转相除法(也称为欧几里得算法)来求解两个数的最大公因子。 辗转相除法,源于古希腊数学家欧几里得的一项伟大发现,是一种高效计算最大公因子的方法。其基本思想是:对于任何...
本主题将深入探讨如何使用C语言来计算两个整数的最大公约数(Greatest Common Divisor,GCD)。最大公约数是两个或多个非零整数共有的最大的正因子,它是数论中的基本概念,对于理解和处理数字关系至关重要。 辗转...
最大公约数是指两个或多个整数共有的约数中最大的一个。 #### 应用场景: - 数学计算:在数学中经常需要对分数进行化简,此时就需要找到分子分母的最大公约数。 - 编程算法:在计算机编程中,最大公约数常常用于...
利用最大公约数,我们可以轻松计算出两个数的最小公倍数,公式为:`LCM(a, b) = |a * b| / GCD(a, b)`。 ### 结论 本文不仅详细解释了如何使用Java编写程序来找出两个数的最大公约数,还介绍了更高效的欧几里得...
否则,我们初始化最大公约数为前两个数的结果,然后遍历数组的剩余部分,每次迭代都将当前最大公约数与下一个数进行计算,并更新结果。 要使用这个函数,你可以创建一个整数数组并传入其元素数量,例如: ```cpp ...
例如,对于数字12和18,它们的最大公约数是6,因为6是12和18的最大公因子。最大公约数在数学和计算机科学中有着广泛的应用,例如简化分数、分解质因数以及优化计算过程。 **1. 递归求n个数的最大公约数** 递归是一...
除了手动实现,Python的标准库`math`也提供了一个内置函数`gcd()`,可以直接用来计算两个数的最大公因子。例如: ```python import math a = 12 b = 18 result = math.gcd(a, b) print(result) # 输出:6 ``` 在...
这篇结课报告探讨了两个关键的数学概念:最大公因子(Greatest Common Divisor, GCD)和拉宾-米勒(Rabin-Miller)素性检验。这两个概念在公钥密码系统如RSA中扮演着核心角色。 首先,我们来详细了解一下最大公因子...
Python提供了内置的math模块,该模块包含一个名为gcd()的函数,专门用于计算两个整数的最大公约数。下面我们将详细探讨如何使用Python的math.gcd()函数以及其背后的数学原理。 首先,让我们来看一下如何导入math...
1. **互素**:两个正整数如果它们的最大公因子是1,那么这两个数互素。39和63的最大公因子是3,因此它们不互素。 2. **欧几里德算法**:求两个正整数最大公因子(GCD)的一种有效方法。对于39和63,通过欧几里德...
在这个程序中,用户可以在文本框`txtNumber1`和`txtNumber2`中输入两个正整数,点击“计算”按钮(`btnCalculate`),程序将计算并显示这两个数的最大公约数到标签`lblResult`。 总之,VB提供了一个直观的编程环境...
最大公约数(GCD)是指两个或多个非零整数的最大公共因子,它可以通过多种方法来计算,如欧几里得算法。欧几里得算法基于以下原理:对于任意两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数和b之间的最大...
在编程中,可以编写函数或子VI来计算两个数的LCM,然后扩展到多个数的情况。 压缩包中的"最小公倍数.vi"同样是一个LabVIEW程序,可能实现了计算两个或多个数的最小公倍数的算法。这个程序可能包含了对输入数的循环...
在主函数`main`中,首先从用户那里获取两个整数`x`和`y`,然后调用`yushu`函数计算这两个数的最大公约数,并存储在变量`z`中。接着,利用公式`LCM(x, y) = |x * y| / GCD(x, y)`计算最小公倍数,结果存储在变量`t`中...
接下来,**最大公约数(GCD)**是两个或多个非零整数的最大公共因子。在C#中,可以使用欧几里得算法(Euclidean algorithm)来找到GCD。该算法基于“两个数的较大数除以较小数的余数等于两数的GCD”的原理,不断重复...
分解质因数法是通过将两个数分别分解成质因数的乘积,然后找出共同的质因数,将这些质因数相乘得到最大公约数。例如,m=48=2^4 * 3,n=18=2*3^2,它们的最大公约数就是2和3的最小指数的乘积,即2^1 * 3^1 = 6。 3....
以下是一个简单的C#函数,用于计算两个整数的最大公约数: ```csharp int GCD(int a, int b) { if (b == 0) return a; else return GCD(b, a % b); } ``` 计算最小公倍数则可以通过以下公式实现:两数乘积除以...
最大公约数(Greatest Common Divisor,GCD)算法是计算两个或多个整数的最大公共除数的数学方法。在编程领域,这个概念被广泛应用于优化算法、编码和解决数学问题。本文将深入探讨最大公约数算法的原理、常见的实现...
在C#中,计算两个整数的最大公约数(Greatest Common Divisor, GCD)可以通过多种算法实现,其中最著名和高效的是欧几里得算法。欧几里得算法基于这样一个事实:两个整数的最大公约数等于其中较小的数和两数的差的...