-
Notifications
You must be signed in to change notification settings - Fork 0
/
prog.pl
119 lines (93 loc) · 2 KB
/
prog.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/usr/bin/perl
# Prime-indexed primes q such that prime(q) + q + 1 and prime(q) - q - 1 are both prime-indexed primes.
# https://oeis.org/A318752
use 5.014;
use ntheory qw(is_prime nth_prime forprimes next_prime);
# New terms:
# 76232459, 83005829, 94265687, 125445101, 164054921, 165553511, 176691533, 199379657, 208672097, 228757709, 238916543, 240583781, 243132233, 243211679, 243443303, 243564509, 260234813
# 30 322305653
# 31 331268027
# 32 344089883
# 33 433795139
# 34 435806027
# 35 435908573
# 36 449928023
# 37 523987799
# 38 538980317
# 39 540024449
# 40 543944327
# 41 551642309
# 42 598534499
# 43 605750921
# 44 627077849
# 45 649003697
# 46 654136697
# 47 672927209
# 48 702395159
# 49 718915343
# 50 733639307
# 51 775344113
# 52 798099719
# 53 812649743
# 54 829685309
# 55 853990439
# 56 864734867
# 57 867110117
# 58
# 59
# 60
# 61
# 62
# 63
# 64
# 65
# Start from this term and search for next terms
my $from = 1839927611;
{
my $prev_i;
my $prev_p;
sub after_prime1 {
my ($n) = @_;
if (not(defined($prev_i))) {
$prev_i = $n;
$prev_p = nth_prime($n);
return $prev_p;
}
for (1 .. $n - $prev_i) {
$prev_p = next_prime($prev_p);
}
$prev_i = $n;
return $prev_p;
}
}
{
my $prev_i;
my $prev_p;
sub after_prime2 {
my ($n) = @_;
if (not(defined($prev_i))) {
$prev_i = $n;
$prev_p = nth_prime($n);
return $prev_p;
}
for (1 .. $n - $prev_i) {
$prev_p = next_prime($prev_p);
}
$prev_i = $n;
return $prev_p;
}
}
sub prime_count {
my ($n) = @_;
chomp(my $pi = `../primecount $n`);
$pi;
}
forprimes {
my $p = after_prime1($_);
my $q = after_prime2($p);
my $x = $q - $p - 1;
my $y = $q + $p + 1;
if (is_prime($x) and is_prime($y) and is_prime(prime_count($x)) and is_prime(prime_count($y))) {
say $p;
}
} prime_count($from), 1e10;