import java.util.ArrayList;
public class Main
{
/**
* The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17
* Find the sum of all the primes below two million.
* @param args
*/
public static void main
(String[] args
) {
ArrayList<Integer> primes = new ArrayList<Integer>();
int upper = 5000;
for (int i = 2; i < upper; i++)
{
primes.add(i);
}
long sum = 0;
for (int i = 0; i < primes.size(); i++)
{
if (true) // (isPrime(primes.get(i)))
{
for (int k = 2; k*primes.get(i) < upper; k++)
{
if (primes.contains(k*primes.get(i)))
{
primes.remove(primes.indexOf(k*primes.get(i)));
}
}
}
}
for (int i = 0; i < primes.size(); i++)
{
sum += primes.get(i);
}
}
public static boolean isPrime(int number)
{
for (int i
= 2; i
<= Math.
sqrt(number
); i
++) {
if (number % i == 0)
{
return false;
}
}
return true;
}
}
aW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CgpwdWJsaWMgY2xhc3MgTWFpbgp7CiAgLyoqCiAgICogVGhlIHN1bSBvZiB0aGUgcHJpbWVzIGJlbG93IDEwIGlzIDIgKyAzICsgNSArIDcgPSAxNwogICAqIEZpbmQgdGhlIHN1bSBvZiBhbGwgdGhlIHByaW1lcyBiZWxvdyB0d28gbWlsbGlvbi4KICAgKiBAcGFyYW0gYXJncwogICAqLwogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCiAgewogICAgQXJyYXlMaXN0PEludGVnZXI+IHByaW1lcyA9IG5ldyBBcnJheUxpc3Q8SW50ZWdlcj4oKTsKICAgIGludCB1cHBlciA9IDUwMDA7CiAgICBmb3IgKGludCBpID0gMjsgaSA8IHVwcGVyOyBpKyspCiAgICB7CiAgICAgIHByaW1lcy5hZGQoaSk7CiAgICB9CiAgICBsb25nIHN1bSA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHByaW1lcy5zaXplKCk7IGkrKykKICAgIHsKICAgICAgaWYgKHRydWUpICAgLy8gKGlzUHJpbWUocHJpbWVzLmdldChpKSkpCiAgICAgIHsKICAgICAgICBmb3IgKGludCBrID0gMjsgaypwcmltZXMuZ2V0KGkpIDwgdXBwZXI7IGsrKykKICAgICAgICB7CiAgICAgICAgICBpZiAocHJpbWVzLmNvbnRhaW5zKGsqcHJpbWVzLmdldChpKSkpCiAgICAgICAgICB7CiAgICAgICAgICAgIHByaW1lcy5yZW1vdmUocHJpbWVzLmluZGV4T2YoaypwcmltZXMuZ2V0KGkpKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHByaW1lcy5zaXplKCk7IGkrKykKICAgIHsKICAgICAgc3VtICs9IHByaW1lcy5nZXQoaSk7CiAgICB9CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3VtKTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzUHJpbWUoaW50IG51bWJlcikKICB7CiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBNYXRoLnNxcnQobnVtYmVyKTsgaSArKykKICAgIHsKICAgICAgaWYgKG51bWJlciAlIGkgPT0gMCkKICAgICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHRydWU7CiAgfQp9
NWsgIDAuMjZzLTM4MU1CICAgCjEwayAwLjg0cy0zODBNQiAgIE5eMS43MCAgLi4uLiAybWxuOiAgMWggNTUnCjIwayAzLjA5cy0zODBNQiAgIE5eMS44OCAgLi4uLiAybWxuOiAgNGggNTUnICAgcHJvamVjdGlvbiB3b3JzZW5pbmcKNDBrIDEyLjgxLTM4MCAgICAgTl4yLjA1ICAuLi4uIDJtbG46IDEwaCA1MCcgICBwcm9qZWN0aW9uIHdvcnNlbmluZyBzdGlsbCAuLi4K
5k 0.26s-381MB
10k 0.84s-380MB N^1.70 .... 2mln: 1h 55'
20k 3.09s-380MB N^1.88 .... 2mln: 4h 55' projection worsening
40k 12.81-380 N^2.05 .... 2mln: 10h 50' projection worsening still ...