prog.pl 761 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/perl
  2. # Smallest a(n) > n such that concatenation of numbers from n to a(n) is a prime.
  3. # https://oeis.org/A084559
  4. use 5.014;
  5. use strict;
  6. use warnings;
  7. use Math::Prime::Util::GMP qw(is_prob_prime factor trial_factor);
  8. sub a {
  9. my ($n) = @_;
  10. my $t = $n;
  11. for(my $k = $n+1; ;++$k) {
  12. $t .= $k;
  13. #say "Testing: $k";
  14. #say "Factoring: $t";
  15. my @f = trial_factor($t, 1e6);
  16. if (@f > 1) {
  17. }
  18. else {
  19. say "[$k] Candidate: $t";
  20. sleep 1;
  21. }
  22. #say join' ', trial_factor($t);
  23. #say '';
  24. #sleep 1;
  25. if (is_prob_prime($t)) {
  26. return $k;
  27. }
  28. }
  29. }
  30. say a(10);
  31. #foreach my $n(2..100) {
  32. # say "a($n) = ", a($n);
  33. #}