Skip to content

Commit 9b2a620

Browse files
committed
modified: Math/dickson_linear_forms_prime_sieve.pl -- simplified a bit
1 parent 9c30e8c commit 9b2a620

File tree

1 file changed

+6
-16
lines changed

1 file changed

+6
-16
lines changed

Math/dickson_linear_forms_prime_sieve.pl

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
use 5.036;
1313
use ntheory qw(:all);
1414
use List::Util qw(all);
15-
use Time::HiRes qw (time);
15+
use Time::HiRes qw(time);
1616

1717
sub isrem($m, $p, $terms, $alpha) {
1818

@@ -29,7 +29,7 @@ ($p, $terms, $alpha)
2929
grep { isrem($_, $p, $terms, $alpha) } (0 .. $p - 1);
3030
}
3131

32-
sub remainders_for_primes($n, $primes, $terms, $alpha) {
32+
sub remainders_for_primes($primes, $terms, $alpha) {
3333

3434
my $res = [[0, 1]];
3535

@@ -54,17 +54,6 @@ ($n, $primes, $terms, $alpha)
5454
sort { $a <=> $b } map { $_->[0] } @$res;
5555
}
5656

57-
sub is($m, $n) {
58-
59-
is_prime($m + 1) || return;
60-
61-
foreach my $k (2 .. $n) {
62-
is_prime($k * $m + 1) || return;
63-
}
64-
65-
return 1;
66-
}
67-
6857
sub deltas ($integers) {
6958

7059
my @deltas;
@@ -78,11 +67,11 @@ ($integers)
7867
return \@deltas;
7968
}
8069

81-
sub linear_form_primes($n, $terms, $alpha = 1, $maxp = 3 * $n) {
70+
sub linear_form_primes($terms, $alpha = 1, $maxp = 3 * scalar(@$terms)) {
8271

8372
my @primes = @{primes($maxp)};
8473

85-
my @r = remainders_for_primes($n, \@primes, $terms, $alpha);
74+
my @r = remainders_for_primes(\@primes, $terms, $alpha);
8675
my @d = @{deltas(\@r)};
8776
my $s = vecprod(@primes);
8877

@@ -96,6 +85,7 @@ ($n, $terms, $alpha = 1, $maxp = 3 * $n)
9685
my $d_len = scalar(@d);
9786
my $t0 = time;
9887
my $prev_m = $m;
88+
my $n = scalar(@$terms);
9989

10090
for (my $j = 0 ; ; ++$j) {
10191

@@ -126,7 +116,7 @@ ($n, $terms, $alpha = 1, $maxp = 3 * $n)
126116
foreach my $n (4 .. 10) {
127117
my @terms = (1 .. $n);
128118
my $alpha = 1;
129-
my $m = linear_form_primes($n, \@terms, $alpha);
119+
my $m = linear_form_primes(\@terms, $alpha);
130120
say "a($n) = $m";
131121
}
132122

0 commit comments

Comments
 (0)