fork download
  1. import java.util.ArrayList;
  2.  
  3. public class Main
  4. {
  5. /**
  6.   * The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17
  7.   * Find the sum of all the primes below two million.
  8.   * @param args
  9.   */
  10. public static void main(String[] args)
  11. {
  12. ArrayList<Integer> primes = new ArrayList<Integer>();
  13. int upper = 2000000;
  14. primes.ensureCapacity(upper);
  15. for (int i = 0; i < upper; i++)
  16. {
  17. primes.add(i);
  18. }
  19. long sum = 0;
  20. for (int i = 2; i <= upper / i; i++)
  21. {
  22. if ( primes.get(i) > 0 )
  23. {
  24. for (int k = i*i; k < upper ; k+=i)
  25. {
  26. primes.set(k,0);
  27. }
  28. }
  29. }
  30. for (int i = 2; i < upper; i++)
  31. {
  32. sum += primes.get(i);
  33. }
  34. System.out.println(sum);
  35. }
  36. }
Success #stdin #stdout 0.52s 380352KB
stdin
was: 4KD1IW                   now:
5k  0.26s-381MB                50k   0.08s-380MB
10k 0.84s-380MB   N^1.70       500k  0.15s-380MB   
20k 3.09s-380MB   N^1.88       1mln  0.28s-380MB  N^0.9
40k 12.81-380     N^2.05       2mln  0.53s-380MB  N^0.9
stdout
142913828922