How to make the value appear by clicking on any corner of the Javascript page

Asked

Viewed 33 times

1

Well, I have a javascript exercise that I have to make appear if the value of a number is prime or not. But I’m not succeeding, because the teacher wants the value to appear when we click in any corner of the page in the paragraph with id="message". It is to use the onchange, but I could not. Below the code.

<html>
<head>
  <meta charset='utf-8' />
  <head>
  <script type="text/javascript">
function primo(num) {
    // verifica se o numero digitado é "1", que não é primo
     if(num!=1){
      for (var i = 2; i < num; i++)
        if (num % i == 0) return false;
      return num !== 1;
    }
    }

    function verificarPrimo() {
      var num = document.getElementById("name").value;
      var resl="";
      // verifica se é número
     if(!isNaN(num)){
      // verifica se é primo
      if (primo(num)) {
       resl = "O número ".fontcolor("blue") + (num).fontcolor("blue") + " é primo".fontcolor("blue");
        
      } 
      	else {
       resl = "O número ".fontcolor("red") + (num).fontcolor("red") + " não é primo".fontcolor("red");
      }


      document.getElementById("mensagem").innerHTML = resl;
    }


else{
 document.getElementById("mensagem").innerHTML;
}

  </script>
</head>
<body>
<img src="logogedc.png" width="500px" height="130px" 
	onMouseOver="this.src='logogedc2.png'"
	onMouseOut="this.src='logogedc.png'">
  <p>
   Digite um número:<input type="text" id="name" onfocus="this.value='';"  /><br><br>
    Clique fora para descobrir se o número é primo ou não.
  </p>
  <div>
  <p id="mensagem"></p>
  </div>
</body>
</html>

1 answer

1


Good night,
to call the onchange just do the second on the tag input onchange="verifiPrimo(this.value)".
You can continue using its function to check if the number is prime, but for this example I used the link function /a/57597/73009 because I found it more complete.

<html>
<head>
  <meta charset='utf-8' />
  <script type="text/javascript">
	function probablyPrime(n, k) {
		if (n === 2 || n === 3)
			return true;
		if (n % 2 === 0 || n < 2)
			return false;
	 
		// Write (n - 1) as 2^s * d
		var s = 0, d = n - 1;
		while (d % 2 === 0) {
			d /= 2;
			++s;
		}
	 
		WitnessLoop: do {
			// A base between 2 and n - 2
			var x = Math.pow(2 + Math.floor(Math.random() * (n - 3)), d) % n;
	 
			if (x === 1 || x === n - 1)
				continue;
	 
			for (var i = s - 1; i--;) {
				x = x * x % n;
				if (x === 1)
					return false;
				if (x === n - 1)
					continue WitnessLoop;
			}
	 
			return false;
		} while (--k);
	 
		return true;
	}
	
	function verificarPrimo(valor) {
		var numeroPrimo = probablyPrime(valor, 10);
		document.getElementById("mensagem").style.color = (numeroPrimo ? "blue" : "red");
		document.getElementById("mensagem").innerHTML = "O número " + valor + (numeroPrimo ? "" : " não") + " é primo";
	}

  </script>
</head>
<body>
<img src="logogedc.png" width="500px" height="130px" 
	onMouseOver="this.src='logogedc2.png'"
	onMouseOut="this.src='logogedc.png'">
  <p>
   Digite um número:<input type="text" id="name" onfocus="this.value='';" onchange="verificarPrimo(this.value)" /><br><br>
    Clique fora para descobrir se o número é primo ou não.
  </p>
  <div>
  <p id="mensagem"></p>
  </div>
</body>
</html>

  • Actually, it was my mistake. I didn’t close the last key. Thank you!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.