use 5.014; use ntheory qw(is_prime nth_prime forprimes prime_count next_prime); # Extra terms: # 243211679, 243443303, 243564509, 260234813, 322305653 # Term of the sequence to start from my $from = 5; # It's also possible not to start from the very beginning #my $from = 243211679; { 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; } } 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;