本文實例講述了jQuery尋找n以內完全數的方法。分享給大家供大家參考。具體分析如下:
數的完滿取決於它的因數(能整除原數的那些數)。
例如:12的因數是1,2,3,4和6。當一個數的各因數之和大於該數本身時,該數稱為“盈”數。於是12是一個盈數,因為它的因數加起來等於16。另一方面,當一個數的因數總和小於該數本身時,該數稱為「虧」數。所以10是一個虧數,因為它的因數(1,2和5)加起來只等於8。
最有意義和最少見的數是那些其因數之和恰好等於其本身的數,這些數就是完滿數。
-- 《費馬大定理》
找出完全數,首先就要計算數的因數,百度複習一下什麼是因數。
因數:假如整數n除以m,結果是無餘數的整數,那麼我們稱m就是n的因數。 需要注意的是,唯有被除數,除數,商皆為整數,餘數為零時,此關係才成立。 反過來說,我們稱n為m的倍數。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS Bin</title> </head> <body> <input type="text" id="num"/> <button id="calc">计算</button> <p id="result"></p> </body> </html>
/* * 寻找n以内的完美数 */ function $(id){ return document.getElementById(id); } //判断是否为正整数 function isIntNum(number){ var num = number; if((!isNaN(num)) && (parseInt(num) == parseFloat(num))){ return true; }else{ return false; } } $("calc").addEventListener("click",function(){ var inputNum = $("num").value, $result = $("result"), factorArr = [], resultArr = [], i = 0, j = 0, sum = 0; //检验输入是否为正整数 if(isIntNum(inputNum)){ console.log("right"); }else{ $result.innerHTML = "输入错误:请输入正整数"; return false; } //遍历所有数字 for(var k = 1;k < inputNum;k++){ //每次计算需重置变量 factorArr.length = 0; sum = 0; //寻找当前数字的因数 for(i = 1;i < Math.floor(k/2)+1; i++){ if(k % i === 0){ factorArr.push(i); } } //计算因数之和 for(var m = 0;m < factorArr.length;m++){ sum += factorArr[m]; } //因素和等于当前数,则符合完全数标准 if(sum === k){ resultArr.push(k); } } $result.innerHTML=resultArr; });
希望本文所述對大家的jQuery程式設計有所幫助。