欧几里得算法(辗转相除法)计算最大公约数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了欧几里得算法(辗转相除法)计算最大公约数相关的知识,希望对你有一定的参考价值。
算法定义:
两个整数x和y且x>y的最大公因子等同于y与x mod y的最大公因子。
整数t整除x和y当且仅当t整除y和x mod y,因为x等同于x mod y 加上y的一个整数倍。
另:假设最后求解到的两个数的最大公约数是1,则认为两个数互素。
1 /*递归算法*/ 2 int gcd_rec(int m, int n) 3 { 4 if (n == 0) 5 return m; 6 return gcd_rec(n, m % n); 7 } 8 9 10 /*迭代算法*/ 11 int gcd_iter(int m, int n) 12 { 13 while (m % n != 0) 14 { 15 int mod = m % n; 16 m = n; 17 n = mod; 18 } 19 20 return n; 21 }
以上是关于欧几里得算法(辗转相除法)计算最大公约数的主要内容,如果未能解决你的问题,请参考以下文章