Here's a selection of results when I run the above code on a server here.
39 seconds to find all primes below 5 million, and 18 minutes to find all primes below 100 million.
DECLARE @Results TABLE (MaxNumber INT, CheckpointA INT, CheckpointB INT, Finish INT, NumberOfPrimes INT,
MaxPrime INT, AverageOfPrimes INT,
Seconds AS CAST(Finish AS DECIMAL) / 1000, Minutes AS CAST(Finish AS DECIMAL) / 60000,
Time AS CAST(Finish / 60000 AS VARCHAR(5)) + ':' + RIGHT('0' + CAST(Finish / 1000 % 60 AS VARCHAR(2)), 2))
INSERT @Results
SELECT 1000, 60, 93, 106, 168, 997, 453
UNION ALL SELECT 5000, 76, 123, 140, 669, 4999, 2314
UNION ALL SELECT 10000, 76, 156, 186, 1229, 9973, 4667
UNION ALL SELECT 50000, 76, 280, 360, 5133, 49999, 23575
UNION ALL SELECT 100000, 76, 466, 656, 9592, 99991, 47372
UNION ALL SELECT 500000, 76, 1250, 2576, 41538, 499979, 238678
UNION ALL SELECT 1000000, 93, 2203, 5516, 78498, 999983, 478361
UNION ALL SELECT 5000000, 110, 10156, 39280, 348513, 4999999, 2406213
UNION ALL SELECT 10000000, 93, 20030, 93403, 664579, 9999991, 4820081
UNION ALL SELECT 50000000, 123, 208930, 843080, 3001134, 49999991, 24197369
UNION ALL SELECT 100000000, 140, 466970, 1089933, 5761455, 99999989, 48461680
SELECT * FROM @Results
/* Results
MaxNumber CheckpointA CheckpointB Finish NumberOfPrimes MaxPrime AverageOfPrimes Seconds Minutes Time
--------- ----------- ----------- ------- -------------- -------- --------------- ----------- ---------- -----
1000 60 93 106 168 997 453 0.106000 0.001766 0:00
5000 76 123 140 669 4999 2314 0.140000 0.002333 0:00
10000 76 156 186 1229 9973 4667 0.186000 0.003100 0:00
50000 76 280 360 5133 49999 23575 0.360000 0.006000 0:00
100000 76 466 656 9592 99991 47372 0.656000 0.010933 0:00
500000 76 1250 2576 41538 499979 238678 2.576000 0.042933 0:02
1000000 93 2203 5516 78498 999983 478361 5.516000 0.091933 0:05
5000000 110 10156 39280 348513 4999999 2406213 39.280000 0.654666 0:39
10000000 93 20030 93403 664579 9999991 4820081 93.403000 1.556716 1:33
50000000 123 208930 843080 3001134 49999991 24197369 843.080000 14.051333 14:03
100000000 140 466970 1089933 5761455 99999989 48461680 1089.933000 18.165550 18:09
*/
Ryan Randall
Solutions are easy. Understanding the problem, now, that's the hard part.