2016-09-18 63 views
0

我試圖找出是否或不是一個數字是一個完美的數字,但我不能讓它打印正確。數字6,496,8128是完美的數字,但是當我輸入這些數字時,它從var res2而不是var res1繼續打印。這裏有什麼問題,任何人都可以提供幫助?試圖在Javascript中使用getElementById打印正確的答案

function perfectNo(number) { 
 
    var temp = 0; 
 
    var res1 = "It is a perfect number"; 
 
    var res2 = "It is not a perfect number"; 
 
    for (var i = 1; i <= number/2; i++) { 
 
    if (number % i == 0) { 
 
     temp += i; 
 
    } 
 
    } 
 

 
    if (temp == number && temp != 0) { 
 
    document.getElementById("results").innerHTML = res1; 
 
    } else { 
 
    document.getElementById("results").innerHTML = res2; 
 
    } 
 
}
<input id="num"> 
 
<input type="button" onclick="perfectNo()" value="check"> 
 
<br> 
 
<p>Answer:</p> 
 
<p id="results"></p> 
 
<br>

+3

在你的代碼中,你的函數需要一個參數,數字還沒有被髮送 –

+0

現在是如此明顯......謝謝。 –

回答

3

嘗試用:

var number = document.getElementById("num").value; 

像這樣:

function perfectNo() { 
 
    var number = document.getElementById("num").value; 
 
    console.log(number); 
 
    var temp = 0; 
 
    var res1 = "It is a perfect number"; 
 
    var res2 = "It is not a perfect number"; 
 
    for (var i = 1; i <= number/2; i++) { 
 
    if (number % i == 0) { 
 
     temp += i; 
 
    } 
 
    } 
 

 
    if (temp == number && temp != 0) { 
 
    document.getElementById("results").innerHTML = res1; 
 
    } else { 
 
    document.getElementById("results").innerHTML = res2; 
 
    } 
 
}
<input id="num"> 
 
<input type="button" onclick="perfectNo()" value="check"> 
 
<br> 
 
<p>Answer:</p> 
 
<p id="results"></p> 
 
<br>