本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答