Posted by: prankster August 20, 2015
Programming Challenge
Login in to Rate this Post:     0       ?        
Is this correct? Runs for a minute, output is
1137030nth prime number is 17752279


import java.util.concurrent.TimeUnit;

public class PrimeTest
{
public static void main(final String args[])
{
long start = System.currentTimeMillis();
long currentTime = start;
long count = 0;
long numberToCheck = 1;
long primeNumber = numberToCheck;
while(start < currentTime + TimeUnit.SECONDS.toMillis(60))
{
if (isPrime(numberToCheck))
{
count ++;
primeNumber = numberToCheck;
}
numberToCheck ++;
start = System.currentTimeMillis();
}

System.out.println(count + "th prime number is " + primeNumber);
}

/**
* @param numberToCheck
* @return
*/
private static boolean isPrime(final long numberToCheck)
{
for (int divisor = 2; divisor < Math.sqrt(numberToCheck); divisor ++)
{
if (numberToCheck % divisor == 0)
{
return false;
}
}
return true;
}
}
Read Full Discussion Thread for this article