Prime Time

Write a function to take the num parameter and return true if it is a prime number or false if it composite.

by Hugh Chapman

HTML

<form id="prime">
    <input id="candidate" name="candidate" type="text" value=""/>
    <input type='submit' name='Submit' value="Submit"/>
</form>
<div id="output"></div>

CSS

#output { margin-top: 20px;}

JavaScript

var element = window.document.getElementById('prime');
var output = window.document.getElementById('output');
function primeTime(e) {
    e.preventDefault();
    var selector = '#' +e.currentTarget.id;
    var num = parseInt(document.querySelector(selector).candidate.value,0);   
    var isPrime = checkPrime(num);
    
    if (output.textContent) {
        output.textContent = isPrime;
    } else {
        output.innerText = isPrime; // ie < 9
    }
    console.log('done.');
    
}

function checkPrime(num) {
    if (num === 1)  return false; // 1 is never prime
    if ((num % 2 === 0) && num !== 2) return false; // if its even and not 2 its not prime
    var min = 3;
    var max = Math.ceil(Math.sqrt(num));
    for (var i = min; i < max; i++) {
        if(num % i === 0) return false;
    }
    return true;
}

element.addEventListener('submit', primeTime, false);