prog.pl 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/usr/bin/perl
  2. # Numbers k such that if j is the sum of the first k primes, then the sum of the first j primes is prime.
  3. # https://oeis.org/A321342
  4. use 5.014;
  5. use ntheory qw(:all);
  6. use Math::AnyNum qw(:overload);
  7. {
  8. my $prev_p;
  9. my $prev_sum;
  10. sub sum_primes_1 {
  11. my ($n) = @_;
  12. if (not defined($prev_p)) {
  13. $prev_p = $n;
  14. $prev_sum = 0 + sum_primes($n);
  15. return $prev_sum;
  16. }
  17. $prev_sum += sum_primes($prev_p + 1, $n);
  18. $prev_p = $n;
  19. return $prev_sum;
  20. }
  21. }
  22. {
  23. my $prev_p;
  24. my $prev_sum;
  25. sub sum_primes_2 {
  26. my ($n) = @_;
  27. if (not defined($prev_p)) {
  28. $prev_p = $n;
  29. $prev_sum = 0 + sum_primes($n);
  30. return $prev_sum;
  31. }
  32. $prev_sum += sum_primes($prev_p + 1, $n);
  33. $prev_p = $n;
  34. return $prev_sum;
  35. }
  36. }
  37. my $i = 1;
  38. for (my $k = 1 ;; $k+=2) {
  39. my $p = nth_prime(sum_primes_2(nth_prime($k)));
  40. my $sum = sum_primes_1($p);
  41. if (is_prime($sum)) {
  42. print "a($i) = $k\n";
  43. ++$i;
  44. }
  45. }