Prime Numbers Wiki
No edit summary
Tag: sourceedit
(Since square is checked, no need to check the other number)
Tag: sourceedit
Line 9: Line 9:
 
num = parseInt(num,10);
 
num = parseInt(num,10);
 
var prime;
 
var prime;
var x=Math.sqrt(num)+1;
+
var x=Math.sqrt(num);
 
var result;
 
var result;
 
var e = Math.floor((Math.random() * 10) + 1);
 
var e = Math.floor((Math.random() * 10) + 1);
Line 73: Line 73:
 
if (y === 0) {result=("Calculation aborted. " + num + " has no factors below 99999.");}
 
if (y === 0) {result=("Calculation aborted. " + num + " has no factors below 99999.");}
 
else if (prime == "square"){
 
else if (prime == "square"){
x -= // x was set to one number above square
 
 
result=(num + " is not prime. It is a square of " + x + ".");
 
result=(num + " is not prime. It is a square of " + x + ".");
 
}
 
}

Revision as of 04:56, 7 August 2016

/* This is a prime-testing code. The page will only load on specific pages that
are meant to be shown. See Common.js for details.  */

$('<div style="float: right; font-size:0.5em">Enter a number to test primality: <input type="text" id="myNumber" size="14" maxlength="15"><input type="button" value="Calculate" onclick="calculate(form)"><input type="text" id="myResult" name="result" size="55" value="" readonly placeholder="Enter a prime number here for testing! (Maximum Limit: 15 digits)"></div>').appendTo('#PrimeTest_tag');
 
function calculate(form) {
   var num = document.getElementById("myNumber").value;
   num = num.replace(/\,/g,'');
   num = parseInt(num,10);
   var prime;
   var x=Math.sqrt(num);
   var result;
    var e = Math.floor((Math.random() * 10) + 1);
   var y = 1;
    
    if (isNaN(num) || num < 0) {
    document.getElementById("myResult").value=("This is not a valid number! Please try again.");
    return;
    }
   
   //Switch block starts
   switch (num) {
   case 0:
      result=("Uh......are you sure about number 0?");
      break;
   case 1:
      result=("1 is not prime by definition. It has only 1 factor.");
      break;
   case 2:
      result=("2 is a prime number! The only even one, sadly.");
      break;
   case 3:
      if (e == 8) {
        result=("3 is a prime number! It's 3primetime3's favorite prime!");
      } else {
        result=("3 is prime!");
      }
      break;
   case 37:
      if (e == 8) {
        result=("You found an easter egg! It's Blueeighthnote's favorite prime!");
      } else {
        result=("37 is prime!");
      }
      break;
   case 83:
      if (e == 8) {
        result=("83 is a prime number! It's Minipop56's favorite prime!");
      } else {
        result=("83 is prime!");
      }
      break;
      
   default: 
   //Detect squares early if it turns out to be the case
   if (x % 1 === 0) {prime = "square";}
   else {
   //Begin Prime Test Check Loop
   for (var i=3;i<=x;i+=2) {
       //Condition was set to activate the message if the number is above 62.5 billion: A prompt is made to ask if the calculation should stop.
      if (i == 99997 && x >= 250000) { 
      var r = confirm("The number has no factors below 99991. Do you want to continue? It might take up to a minute to check if it is prime.");
      if (r === false) {y = 0; break;}      
      }
      if (num % i === 0) {
         prime="yes";
         result=(num + " is not prime.  It is divisible by " + i + ".");
         break;
      }
   }
   }
   //End Loop
   if (y === 0) {result=("Calculation aborted. " + num + " has no factors below 99999.");}
   else if (prime == "square"){
   result=(num + " is not prime. It is a square of " + x + ".");
   }
   else {
   result=(num + " is prime!");
   }
   
   }
   //End Switch block
   document.getElementById("myResult").value = result;
}