#!/usr/local/bin/perl -w
use Quantum::Superpositions;
use Benchmark;
my $count = shift || 1000;
print "\nTiming prime generated for primes from 1..$count.";
print "\nTimings are displayed for groups of 10 primes.";
print "\nVERSION = $Quantum::Superpositions::VERSION";
my $numprime = 0;
my $last = Benchmark->new;
# primes are either the number 2 or any value with
# all the values in the range range of (2..sqrt(number)+1)
# all having a module with the number.
#
# for example, 29 is prime because 29 % all(2..6) != 0 is
# true.
#
# or: 29 % 2, 29 % 3 ... 29 % 6 all have a remainder.
sub is_prime
{
$_[0]==2 || $_[0] % all(2..sqrt($_[0])+1) != 0
}
# print the time to generate every 10th prime.
# cumulative times help average out fluctuations
# due to clustering of primes.
for( 1..$count )
{
next unless is_prime( $_ );
next if ++$numprime % 10;
# recycling $this avoids benchmarking the print
# and Benchmark calls.
my $this = Benchmark->new;
print "\n$_\t$numprime\t", timestr( timediff($this, $last) );
$last = $this;
}
print "\n\n";
0
__END__