如何求最大公约数和最小公倍数,最小公约数是几个数公有的最大约数,最大公倍数是几个数公有的最小倍数。首先应该知道一个公式:最小公倍数=x*y/最大公约数
这样得到最大公约数就可以直接算出最小公倍数。
我们看几种情况:
12 18 最大公约数是6;
7 14 最大公约数是7;
3 7 最大公约数是1;
7 12最大公约数是1;
无非就是这四种情况,其实可以看成三种,我们发现,不管怎样,两个数x,y的最大公约数是不会超过其中最小的数的,那么我们就可以找到输入的两个数中的最小数,使用Math.min(x,y)找到最小数,通过循环语句,从min开始,让两个数同时对min取余,直到取余为整数,那么就找到了
html代码:
数字1:<input type="text" name="" id="one" value="" placeholder="请输入"/>
数字2:<input type="text" name="" id="two" value="" placeholder="请输入"/>
<button οnclick="f1()" id="anniu">点击</button>
最大公约数是:<input type="text" name="" id="three" value="" />
最小公倍数是:<input type="text" name="" id="four" value="" />
js代码:
var one = document.getElementById("one");
var two = document.getElementById("two");
var three = document.getElementById("three");
var four = document.getElementById("four");
function f1(){
var a = one.value - 0;
var b = two.value - 0;
var x = Math.max(a,b);
var y = Math.min(a,b);
//因为最大公约数不会超过其中的最小的数,所以找到最小数,从最小数开始遍历,直到他俩都能被同一个数整除,那么这个数就是最大公约数,这时就要跳出循环
for(i = y; i >= 1; i--){
if(x % i == 0&& y % i ==0){
three.value = i;
//最小公倍数等于两数之积 除以最大公约数
four.value = x * y / i;
one.value = "";
two.value = "";
break;
}
}
}
/*写博客的目的时为了记录自己的学习,哪里有不对的,希望大家指点,不希望有恶意攻击的,我现在确实还是个小菜鸟*/