Truncatable primes: Difference between revisions

Line 1,185:
for my $prime (@primes) {
last if $prime >= $n;
return if 0 ==unless $n % $prime;
}
 
Line 1,193:
$new += 2 until is_prime($new);
push @primes, $new;
return if 0 ==unless $n % $new;
}
 
Line 1,203:
sub trunc {
my ($n, $side) = @_;
mysubstr $regex =n, $side == LEFT ? qr/^./0 : qr/.$/-1, 1, q();
$n =~ s/$regex//;
return $n;
}
Line 1,211 ⟶ 1,210:
sub is_tprime {
my ($n, $side) = @_;
return if (is_prime($n =~ /0/;)
return (is_prime($n) and (1 == length $n or is_tprime(trunc($n, $side), $side)));
}
 
Line 1,219 ⟶ 1,218:
my @tprimes = ('9' x $length) x 2;
for my $side (LEFT, RIGHT) {
$tprimes[$side] -= 2 until is_tprime(-1 == index $tprimes[$side], $side);'0'
and is_tprime($tprimes[$side], $side);
}
 
print 'left ', join(', right ', @tprimes), "\n";</lang>
</lang>
{{out}}
<pre>left 998443, right 739399</pre>
Anonymous user