簡體   English   中英

如何在JavaScript中找到整數的因數?

[英]How do i find a factor of an integer in javascript?

我需要創建一個計算器,用戶可以在其中輸入數字,並計算給定數字的因數,立方和平方。

下面是我正在使用的代碼。我不知道如何解決這個問題。 任何意見,將不勝感激。

 document.getElementById('calculate').addEventListener('click', estimateTotal); function estimateTotal(event) { event.preventDefault(); var initial2 = document.getElementById('initial').value; document.getElementById('factor').value = 0; document.getElementById('sqaure').value = initial2 * initial2; document.getElementById('cube').value = initial2 * initial2 * initial2; } 
 <form id="calculator" method="POST"> <p>Please enter a number between 0 and 50 <input name="initial" id="initial" type="text" size="20" required><button id="calculate">Calculate</button></p> <p>The Factorial of your number is: <input name="factor" id="factor" class="factor" type="text" size="20"></p> <p>The Square of your number is:<input name="sqaure" id="sqaure" class="sqaure" type="text" size="20"></p> <p>The Cube of your number is:<input name="cube" id="cube" class="cube" type="text" size="20"></p> </form> 

  **recursive JavaScript function factor(n)**

 **Check this link:** **http://www.javascripter.net/math/primes/factorization.htm**

function factor(n) {
 if (isNaN(n) || !isFinite(n) || n%1!=0 || n==0) return ''+n;
 if (n<0) return '-'+factor(-n);
     var minFactor = leastFactor(n);
 if (n==minFactor) return ''+n;
 return minFactor+'*'+factor(n/minFactor);
}

同時嘗試因子和階乘

 document.getElementById('calculate').addEventListener('click', estimateTotal); function estimateTotal(event) { event.preventDefault(); var initial2 = document.getElementById('initial').value; document.getElementById('Factorial').value = fact(initial2); document.getElementById('factor').value = factors(initial2); document.getElementById('sqaure').value = initial2 * initial2; document.getElementById('cube').value = initial2 * initial2 * initial2; } function fact(n) { if(n == 0) return 1; else return (n*fact(n-1)); } function factors(num) { var n_factors = [], i; for (i = 1; i <= Math.floor(Math.sqrt(num)); i += 1) if (num % i === 0) { n_factors.push(i); if (num / i !== i) n_factors.push(num / i); } n_factors.sort(function(a, b){return a - b;}); // numeric sort return n_factors; } 
 <p>Please enter a number between 0 and 50 <input name="initial" id="initial" type="text" size="20" required><button id="calculate">Calculate</button></p> <p>The Factorial of your number is: <input name="factor" id="Factorial" class="factor" type="text" size="20"></p> <p>The Factor of your number is: <input name="factor" id="factor" class="factor" type="text" size="20"></p> <p>The Sqaure of your number is:<input name="sqaure" id="sqaure" class="sqaure" type="text" size="20"></p> <p>The Cube of your number is:<input name="cube" id="cube" class="cube" type="text" size="20"></p> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM