|
|
A305382
|
|
a(n) is the number of distinct primes produced by starting with the n-th prime p and repeatedly looking at all the prime factors of 2p+1, and then performing the same process (double, add 1, find all prime factors) with those primes; a(n) = -1 if this produces infinitely many primes.
|
|
4
|
|
|
9, 8, 8, 8, 8, 8, 9, 8, 8, 11, 9, 9, 12, 12, 8, 14, 10, 13, 9, 9, 9, 15, 11, 17, 9, 12, 9, 13, 10, 10, 10, 12, 9, 10, 9, 13, 9, 11, 10, 12, 16, 9, 12, 13, 16, 9, 9, 10, 9, 10, 11, 11, 9, 16, 10, 11, 9, 10, 10, 10, 9, 10, 13, 18, 9, 11, 10, 9, 11, 12, 13, 15, 9, 12, 9, 11, 13, 15, 10, 9, 11, 11, 11, 10, 11, 11, 13, 14, 10, 10, 10, 10, 9, 12, 10, 15, 17, 10, 13, 9
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
W. Edwin Clark observes (Jun 16 2018) that, based on analysis of the first 10^5 primes, the procedure always ends with {3, 5, 7, 11, 13, 19, 23, 47}, which is sequence A020575. In particular, it appears that the total number of primes obtained is always finite.
|
|
REFERENCES
|
James Propp, Posting to Math Fun Mailing List, Jun 16 2018
|
|
LINKS
|
|
|
EXAMPLE
|
a(1)=9: Starting with the first prime, 2, we see that:
2 -> 5 -> 11 -> 23 -> 47 -> 95=5*19,
19 -> 39=3*13,
3 -> 7 -> 15=3*5,
13 -> 27=3*3*3,
which produces 9 different primes, 2 3 5 7 11 13 19 23 47.
|
|
MATHEMATICA
|
propp1[p_] := propp1[p] = #[[1]] & /@ FactorInteger[2*p + 1];
propp[p_Integer] := propp[{p}];
propp[s_List] := propp[s, Union[s, Union @@ propp1 /@ s]];
propp[s_, t_] := If[s == t, s, If[Length[t] > 1000, OVERFLOW[t], propp[t]]];
Table[Length[propp[Prime[n]]], {n, 100}] (* Michael Kleber, Jun 16 2018 *)
g[lst_List] := Union@ Join[lst, First@# & /@ Flatten[FactorInteger[2 lst + 1], 1]]; f[n_] := Length@ NestWhile[g@# &, {Prime@ n}, UnsameQ, All]; Table[ f[n], {n, 100}] (* Robert G. Wilson v, Jun 17 2018 *)
|
|
PROG
|
(Python)
from sympy import prime, primefactors
def a(n):
pn = prime(n)
reach, expand = {pn}, [pn]
while len(expand) > 0:
p = expand.pop()
for q in primefactors(2*p+1):
if q not in reach:
expand.append(q)
reach.add(q)
return len(reach)
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|