算法E: 给定两个正整数m和n,求它们的最大公约数(能同时整除m和n的最大正整数)
E1. 【求余数】以n除m并令r为所得余数。(我们将有0≤r<n)
E2. 【余数为零?】若 r = 0, 算法结束, n即为答案
E3. 【减少】 置m<-n, n<-r, 并返回步骤E1
//欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数 //544和119的最大公约数17 var m = prompt("请输入第一个值"); var n = prompt("请输入第二个值"); var r = 0; r = calc_maxnum(m, n); window.alert(m + ‘和‘ + n + ‘的最大公因子:‘ + r); function calc_maxnum(num1, num2) { var result = num1 % num2; if (result > 0) { return calc_maxnum(num2, result); } return num2; }
原文:https://www.cnblogs.com/keyuming/p/14791115.html