use warnings; use strict; use ntheory 'forprimes'; use bigint; my $n = 12; my $c = 1; my $k = 10; my $l = 10; my $p = 100; my @candidates = (0 .. $l); my $remove; sieve2(); sub sieve2 { forprimes { for my $i (0 .. $l) { if (($n * ($k + $i) + $c) % $_ == 0) { $remove = $i; @candidates = grep { $_ != $remove } @candidates; } } } $p; print join("\n", @candidates),"\n"; } #### 16:58 >perl 2012_SoPW.pl 3 5 6 9 10 16:58 >