2016-09-18 1 views
0

zu drucken Ich versuche zu finden, ob eine Zahl eine perfekte Zahl ist, aber ich kann es nicht richtig drucken. Die Zahlen 6, 496, 8128 sind perfekte Zahlen, aber als ich diese eintrug, druckte es weiter von var res2 anstelle von var res1. Was ist das Problem hier, kann jemand helfen?Versucht, die richtige Antwort in Javascript mit 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

In Ihrem Code benötigt Ihre Funktion ein Argument, die Nummer wurde nicht gesendet –

+0

Es ist jetzt so offensichtlich ... Danke. –

Antwort

3

Versuchen mit:

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

So:

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>

Verwandte Themen