首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

最大约数算法

算法的原理:   对于辗转相除法:i和j的最大约数,也就是i和j都能够除断它。换句话讲,就是i比j的n倍多的那个数k(i = j*n + k,即i % j = k)应该也是最大约数的倍数。...所以就能转换成求k和j的最大约数。同理,对于更相减损术,同样的道理,i比j大的部分也是最大约数的倍数。...代码: 1 /** 2 * 求最大约数算法汇总 3 * 4 */ 5 public class GCD { 6 public static void main(String[...42 } 43 } 44 45 46 /** 47 * 第二种方法:九章算术的更相减损术,即如果i>j,那么先用i-j得到其差k.然后将问题转换成求k和m的最大约数...} 66 } 67 } 68 69 /** 70 * 第一种方法:辗转相除法, 即如果i>j, 那么先用i%j得到余数k.将问题转换成求k和m的最大约数

1.3K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    最大约数

    2.最大约数约数最大的称为最大约数。 对任意的若干个正整数,1总是它们的公因数。 公约数与公倍数相反,就是既是A的约数同时也是B的约数的数,12和15的公约数有1,3,最大约数就是3。...再举个例子,30和40,它们的公约数有1,2,5,10,最大约数是10 3.最大约数和最小公倍数的关系: 两个数的乘积/最大约数=最小公倍数 4.解题引导 如18和6,我们可以知道两个数的最大约数一定小于等于其中最小的那个数...,那么要想实现最大约数,必须先找出两个数中的最小值 然后再从6或比6小的数中寻找最小公约数 5.代码展示: 代码如下(示例): #include int main() {...min--; } return 0; } 当然方法不只这一种,这种方法效率比较低 6.辗转相除法 介绍如图: 如图,用24除18取余数6 用18除6 取余为0 6就是这两个数的最大约数...如上图如果我们把24看作m,把18看作n,余数如果不是0,就将n的值赋给m,余数的值赋给n 余数如果是0,n就是最大约数 7.代码演示: #include//最大约数 int

    22830

    数据结构和算法-数学问题-最大约数

    二、实现最大约数算法 2.1 辗转相除法,又称欧几里德算法 辗转相除法又称欧几里德算法,是用来求两个正整数最大约数算法。...它是古希腊数学家欧几里得在其著作《The Elements》中最早描述了这种算法,所以被命名为欧几里得算法。 定理:两个正整数的最大约数等于其中较小的那个数和两数相除余数的最大约数。...流程图如下: 2.2 Stein算法 Stein算法是一种计算两个数最大约数算法,是针对欧几里德算法在对大整数进行运算时,需要试商导致增加运算时间的缺陷而提出的改进算法。...然后有一个事实需要了解:一个奇数的所有约数都是奇数。研究一下最大约数的性质,我们发现, gcd( k*x,k*y ) = k*gcd( x,y ) 。说它好,是因为它非常符合化小的思想。...7 更相减损法最早是出自《九章算术》的一种求最大约数算法,它原本是为约分而设计的,但它适用于任何需要求最大约数的场合。

    1.1K10

    牛客网 最大的奇约数

    题目:最大的奇约数 小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大奇数约数,x为正整数。 例如:f(44) = 11....) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + 5 + 3 + 7 = 21 小易计算这个问题遇到了困难,需要你来设计一个算法帮助他...然后,看到了评论中的,奇数最大即为自己,偶数一直除2到变成奇数为止,然后思路变成了将所有数字放在数组中,for循环遍历每个数,奇数不变,偶数则一直除2到变成奇数为止,结果空间复杂度太高。...,求每轮奇数和时,为1+3+......而首尾相加除以2仍然是(n+1)/2,所以,最终每一轮所加上的为((n+1)//2)**2 参考:最大约数

    59020

    最大约数与递归

    最大约数 定义 所谓最大约数,即是两个正整数都可以整除的最大整数。 特性 最大约数,是两个数共有的素因数乘积。...例如: 462 = 2*3*7*11 1071=3*3*7*17 所以,最大约数为3*7=21 辗转相除法 辗转相除法首先出现在欧几里得的《几何原本》,在中国则可以追溯到东汉出现的《九章算术...其核心思想是:每次取两个数中最小的数和最大数除以最小数的余数,重复进行直到余数为0,这时两个数相等,为最大约数。...举例如下: (200,160)-》(160,40)-》(40,0)-》40为最大约数 图形化的描述如下图: ?...求一个长方形的长和宽的最大约数,就相当于在里面填上面积最大的小正方形,不断地辗转相除,最后得到可以划分长方形的最大正方形。

    80450
    领券