/* package whatever; // don't place package name! */
/* Testowanie przy ilu liczbach warto tworzyć sito Eratostenesa
*/
public class Main
{
public static void main
(String[] args
) {
int n = 2000000;
if(args.length>0)
{
try
{
}
{
}
}
boolean[] notPrimes = new boolean[n+1];
long start
= System.
nanoTime(); for(int i=2;i*i<=n;i++)
{
if (notPrimes[i])
continue;
for (int j=2*i;j<=n;j+=i)
notPrimes[j] = true;
}
long time
= System.
nanoTime()-start
; System.
out.
printf("Tworzenie sita (w ms): %10.3f \n",time
/1000000.0); long sum = 0;
for(int i=2;i<n;i++)
{
if(!notPrimes[i])
{
sum+=i;
}
}
time
= System.
nanoTime()-start
; System.
out.
printf("Czas sumowania (w ms): %10.3f \n",time
/1000000.0); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKLyogVGVzdG93YW5pZSBwcnp5IGlsdSBsaWN6YmFjaCB3YXJ0byB0d29yennEhyBzaXRvIEVyYXRvc3RlbmVzYQogKi8KcHVibGljIGNsYXNzIE1haW4KewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKICAgIHsgICAKICAgICAgICBpbnQgbiA9IDIwMDAwMDA7CiAgICAgICAgaWYoYXJncy5sZW5ndGg+MCkKICAgICAgICB7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuID0gSW50ZWdlci5wYXJzZUludChhcmdzWzBdKTsgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBib29sZWFuW10gbm90UHJpbWVzID0gbmV3IGJvb2xlYW5bbisxXTsKICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLm5hbm9UaW1lKCk7CiAgICAgICAgZm9yKGludCBpPTI7aSppPD1uO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGlmIChub3RQcmltZXNbaV0pCiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgZm9yIChpbnQgaj0yKmk7ajw9bjtqKz1pKQogICAgICAgICAgICAgICAgbm90UHJpbWVzW2pdID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgbG9uZyB0aW1lID0gU3lzdGVtLm5hbm9UaW1lKCktc3RhcnQ7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGYoIlR3b3J6ZW5pZSBzaXRhICh3IG1zKTogJTEwLjNmIFxuIix0aW1lLzEwMDAwMDAuMCk7CiAgICAgICAgc3RhcnQgPSBTeXN0ZW0ubmFub1RpbWUoKTsKICAgICAgICBsb25nIHN1bSA9IDA7CiAgICAgICAgZm9yKGludCBpPTI7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKCFub3RQcmltZXNbaV0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN1bSs9aTsKICAgICAgICAgICAgfQogICAgICAgIH0gICAgICAgIAogICAgICAgIHRpbWUgPSBTeXN0ZW0ubmFub1RpbWUoKS1zdGFydDsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50ZigiQ3phcyBzdW1vd2FuaWEgKHcgbXMpOiAlMTAuM2YgXG4iLHRpbWUvMTAwMDAwMC4wKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3VtKTsKICAgIH0KfQ==