本文涉及到的数学知识都是来自《信息安全数学基础》陈恭亮版这一本书!
这本书中涉及到了大量的数论的计算问题,比如辗转相除,求解同余式,用模重复平方求同余式等等,为了应对(fu)考试,在此将这些计算问题做成了一个页面,利用js计算结果,再将结果呈现到页面上。
1 辗转相除法
* html代码
<div class="box">
<p>1.辗转相除法(顺序无关)</p>
<input type="text" id="inputVal1">
<input type="text" id="inputVal2">
<button onclick="mod()">start</button>
<div id="res"></div>
</div>
- js代码
<script>
var arr = new Array()
function mod () {
arr = new Array()
var val1 = parseInt(document.getElementById('inputVal1').value)
var val2 = parseInt(document.getElementById('inputVal2').value)
if(val1 > val2) {
max = val1
min = val2
}
else if(val1 < val2) {
max = val2
min = val1
}
else {
alert("两数相等")
}
if(step(max, min)) {
// 更新结果
showRes(max, min)
}
}
// max是被除数;min是除数
function step (max, min) {
s = parseInt(max/min)
m = max - s*min
arr[arr.length] = [max, s, min, m] //s是倍数,m是余数
if(m) {
step(min, m)
}
return true
}
function showRes (max, min) {
var newNode = document.createElement("div")
newNode.innerHTML += "<b>" + max + "/" + min + "</b><br>"
for(var i=0; i< arr.length;i++) {
var val = arr[i][0] + " = " + arr[i][1] + " * " + arr[i][