Pieter van Althuis
Pieter van Althuis

Reputation: 13

Javascript Showing even numbers only

I've got this project where I have to generate random mathematics sums... They are all 'divide by' sums, so I want to make all numbers even. Can anyone help me with this? just ask if I'm not clear enough =)

<script>
   $(function() {
      var number = document.getElementById("breuken"),
      i = 1;

      for (; i <= 10; i++) {

         var sRandom = Math.floor(Math.random()*10 + 1),
         fRandom = Math.floor(sRandom + Math.random()*(20-sRandom )),
         calc = Math.abs(fRandom / sRandom),
         textInput = document.createElement('input'),
         span = document.createElement('span'),
         p = document.createElement('p');

         textInput._calc = calc;

         textInput.onchange = (function(p) {
            return function(ev) {
               var self = ev.target;
               if (self.value == self._calc) {
                  p.style.color = 'green';                    
               };
            };
         })(p);

         span.innerHTML = fRandom + " : " + sRandom + " = ";

         p.appendChild(span);
         p.appendChild(textInput);

         number.appendChild(p);

      };
   });
</script>

Upvotes: 1

Views: 6548

Answers (2)

Scott Hunter
Scott Hunter

Reputation: 49813

Get a random integer over 1/2 the range and double it.

Upvotes: 3

scibuff
scibuff

Reputation: 13755

To get an even random number just:

halve you range and multiply by 2

var range = 100;
var number = Math.floor( Math.random() * range / 2 ) * 2;

or keep getting random numbers until you get an even one

 var number;
 do {
      number = Math.floor(Math.random()*10 + 1)
 } while( number % 2 == 1 );

Upvotes: 5

Related Questions