Ken Jennings posses four questions about 2009 which I thought would be fun to answer by making a small JavaScript to calculate the answers:
It turns out that 2009 is not a prime number, as I briefly wondered if it might be. In fact, one of its several divisors is a perfect square. What is that factor?
While you’re killing time on meaningless stuff (I imagine Friday is going to be a slow work day, if you’re in the office at all): what was the last year that had such a large perfect square as a factor? What will be the next one?
And what year is the next prime number?
Solution and code after the break.
- Perfect square divisor found. 2009 is divisible by: 7^2 (49)
- 2011 is a prime!
- Perfect square divisor found. 2000 is divisible by: 10^2 (100)
- Perfect square divisor found. 2016 is divisible by: 12^2 (144)
And the code:
<script type="text/javascript"> var i = 7; //divides by 1 and ? var isNotPrimeFlag = false; var isPrimeFlag = false; var isSquareFlag = false; function primeSearch(number){ //document.write("For the year " + number + "<br />"); //Prime search while(i < number){ if( number%i == 0){ //document.write("<br />" + "Not a prime. " + number + " is divisible by: " + i); isNotPrimeFlag = true; break; } i++; if(i == number){ document.write("<br />" + number + " is a prime!"); isPrimeFlag = true; } } } function squareSearch(number){ i = 7; //divisors is a perfect square search while1{ primeSearch(j); } } for (j=2008;j>1900;j--){ if(!isSquareFlag){ squareSearch(j); } if(isSquareFlag){ break; } } isSquareFlag = false; for (j=2010;j<2100;j++){ if(!isSquareFlag){ squareSearch(j); } if(isSquareFlag){ break; } } </script>0
i*i) < number){ if( number%(i*i) == 0){ document.write("<br /> Perfect square divisor found. " +number + " is divisible by: " + i + "^2 (" + (i*i) + ")"); isSquareFlag = true; break; } i++; } } squareSearch(2009); isSquareFlag = false; for (j=2010;j<2100;j++){ if(!(isPrimeFlag ↩