login
A283247
a(n) is the smallest prime number whose representation contains as a substring the first n digits of Pi in base 10.
1
3, 31, 13147, 73141, 314159, 314159, 131415923, 1314159269, 23141592653, 23141592653, 314159265359, 3141592653581, 213141592653589, 1131415926535897, 9314159265358979, 173141592653589793, 3141592653589793239, 3141592653589793239, 314159265358979323861
OFFSET
1,1
COMMENTS
Pi progresses as 3, 31, 314, 3141, hence minimal prime numbers that do this are 3, 31, 13147, 73141. While there are other primes that contain, say, 314, the prime number, 13147 is the first prime to do so.
It is probably provable that this is an infinite sequence. Notice that 314159 appears twice in the sequence since 314159 is the smallest prime that contains 31415 as well as 314159.
a(n) exists for all n since for sufficiently large k, the k-th prime gap < prime(k)^d for some d < 1, so for a fixed number a, the next prime after a*10^m will be less than (a+1)*10^m for sufficiently large m and thus contain a as a substring. - Chai Wah Wu, Feb 22 2018
EXAMPLE
a(4) = 73141 since 73141 is the smallest prime number that contains 3141 (the first 4 digits of Pi).
a(5) = 314159 since 314159 is the smallest prime number that contains 31415.
a(6) = 314159 since 314159 is the smallest prime number that contains 314159.
MATHEMATICA
pp[n_] := If[PrimeQ@n, n, Block[{d = IntegerDigits@n, p, s, t}, p = 10^Length[d]; s = Select[Join[Range[9] p + n, {1, 3, 7, 9} + 10 n], PrimeQ]; If[s != {}, Min@s, s = NextPrime[100 n]; t = Join[If[Floor[s/100] == n, {s}, {}], Range[10, 99] p + n, FromDigits /@ Flatten /@ Tuples[{Range@9, {d}, {1, 3, 7, 9}}]]; s = Select[t, PrimeQ]; If[s == {}, 0, Min@s]]]]; Table[pp[Floor[10^e Pi]], {e, 0, 18}] (* Giovanni Resta, Jul 21 2017 *)
PROG
(Python 3.6.x)
pi_digits = pi_digit_generator #user-defined generator for producing next digit of Pi
next_digit = pi_digits.next() #first call, so next_digit = 3
primes = prime_generator #user-defined generator for producing next prime
current_prime = primes.next() #first call, so current_prime = 2
pi_progress = 0
while True:
pi_progress = pi_progress*10 + next_digit
while str(pi_progress) not in str(current_prime):
current_prime = primes.next()
print(pi_progress, current_prime)
CROSSREFS
Sequence in context: A129209 A134721 A002707 * A261472 A144964 A168678
KEYWORD
nonn,base
AUTHOR
Manan Shah, Jul 20 2017
EXTENSIONS
a(7)-a(19) from Giovanni Resta, Jul 21 2017
STATUS
approved