#!/usr/bin/perl 

use 5.034;

my (@p, $i, $n, $z, $k, $ok);

open (OUT, ">" , "primes.500M") || die $!;
$p[0]=2;
$p[1]=3;
say OUT "2\n";
say OUT "3\n";
$i = 4;
$n = 0;   
$k = 500_000_000-1;
while ($n < $k){
    next if (++$i % 2==0);
    $ok=1;
    $z = sqrt($i);
    for (my $j=1; $p[$j] <= $z; $j++){
	if ($i % $p[$j]==0){
	    $ok=0;
	    last;
	}
    }
    if ($ok==1){
	$p[++$n]=$i;
        say $p[$n];
	say OUT $p[$n];
    }
#    select(undef,undef,undef,0.001);
}

close(OUT);
exit 3;

