欧几里得算法 JavaScript

题目来源:计算机程序设计艺术
欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数
 

算法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;
}
View Code

 

posted @ 2021-05-20 19:02  客于溟  阅读(98)  评论(0)    收藏  举报