No such thing as a small change PerlMonks

### Re^5: Project Euler (a series of challenging mathematical/computer programming problems)

by GrandFather (Sage)
 on Feb 05, 2006 at 00:29 UTC ( #528026=note: print w/replies, xml ) Need Help??

I had a go myself to see what was possible with simple code. It doesn't scale well, but is acceptable for the first 100,000 primes.

DWIM is Perl's answer to Gödel
• Comment on Re^5: Project Euler (a series of challenging mathematical/computer programming problems)

Replies are listed 'Best First'.
Re^6: Project Euler (a series of challenging mathematical/computer programming problems)
by BrowserUk (Pope) on Feb 05, 2006 at 00:39 UTC

I just saw that and decided to time the mechanism I suggested. At 1/3rd of a second for the first million, it even surprised me :)

```#! perl -slw
use strict;
use Devel::Timer;

my \$T = new Devel::Timer;

sub firstNprimes {
my \$n = shift;
open my \$primes, '<:raw', 'primes.all' or die \$!;
my @primes = split ' ', do{ local \$/ = \( \$n * 10 ); <\$primes> };
close \$primes;
return \@primes;
}

\$T->mark( '201' );
my \$ref1 = firstNprimes( 201 );

\$T->mark( '100,000' );
my \$ref2 = firstNprimes( 100_000 );

\$T->mark( '1,000,000' );
my \$ref3 = firstNprimes( 1_000_000 );

\$T->report;
__END__
C:\Perl\test\data>..\junk4

Devel::Timer Report -- Total time: 0.3176 secs

Interval  Time    Percent

----------------------------------------------

02 -> 03  0.3169  99.78%  100,000 -> 1,000,000

01 -> 02  0.0007   0.21%  201 -> 100,000

00 -> 01  0.0000   0.01%  INIT -> 201

That's the ascii version, and it does slow down quite quickly due memory allocation as you go larger; 2 million takes 8 seconds.

I might try the binary file version later.

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Create A New User
Node Status?
node history
Node Type: note [id://528026]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2017-12-15 07:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
What programming language do you hate the most?

Results (420 votes). Check out past polls.

Notices?