palindromic_primes.sf 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/ruby
  2. # Generate palindromic primes up to a given bound.
  3. # See also:
  4. # https://oeis.org/A002385 -- Palindromic primes.
  5. # https://oeis.org/A050251 -- Number of palindromic primes less than 10^n.
  6. # https://rosettacode.org/wiki/Palindromic_primes
  7. func palindromic_primes(upto, base = 10) {
  8. var list = []
  9. for (var p = 2; p <= upto; p = p.next_palindrome(base)) {
  10. list << p if p.is_prime
  11. }
  12. return list
  13. }
  14. say palindromic_primes(1000)
  15. for n in (1..5) {
  16. var count = palindromic_primes(10**n).len
  17. say "There are #{count} palindromic primes <= 10^#{n}"
  18. }
  19. __END__
  20. [2, 3, 5, 7, 11, 101, 131, 151, 181, 191, 313, 353, 373, 383, 727, 757, 787, 797, 919, 929]
  21. There are 4 palindromic primes <= 10^1
  22. There are 5 palindromic primes <= 10^2
  23. There are 20 palindromic primes <= 10^3
  24. There are 20 palindromic primes <= 10^4
  25. There are 113 palindromic primes <= 10^5
  26. There are 113 palindromic primes <= 10^6
  27. There are 781 palindromic primes <= 10^7
  28. There are 781 palindromic primes <= 10^8
  29. There are 5953 palindromic primes <= 10^9
  30. There are 5953 palindromic primes <= 10^10
  31. There are 47995 palindromic primes <= 10^11
  32. There are 47995 palindromic primes <= 10^12