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) |
+ | 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;
}