#!/usr/bin/perl
# number of total numbers we are going to allow to be tested
# a subset of these will be prime
my $limit = 100;
# this will hold all numbers between 0 and the $limit'th prime number
my %m_numbers = (
# the model doesnt work starting from 1, but 1 is prime
1 => 1,
);
my $current = 2;
my $number_tested = keys %m_numbers;
while ($number_tested < $limit) {
# find the next value for current, e.g. the next entry in m_numbers
# which does not exist in the hash
while (exists($m_numbers{$current})) {
$current++;
}
$m_numbers{$current} = 1;
# set all multiples of $current to false up to $limit
my $j = $current * 2;
while ($j < $limit) {
$m_numbers{$j} = 0;
$j += $current;
}
$number_tested = keys %m_numbers;
}
my $prime = 2;
while ($prime < $limit) {
print "${prime}\n" if ($m_numbers{$prime});
$prime++;
}
exit;
Page Information
|
Wiki Information |
Recent PBwiki Blog Posts |