login
A382671
a(1) = 1 and thereafter a(n) = a(n-1) + j(n-1) where j(1) = 1 and then j(n) = j(n-1)-1 if a(n) is composite or j(n) = 2*j(n-1) if a(n) is prime.
1
1, 2, 4, 5, 7, 11, 19, 35, 50, 64, 77, 89, 113, 161, 208, 254, 299, 343, 386, 428, 469, 509, 589, 668, 746, 823, 977, 1285, 1592, 1898, 2203, 2813, 3422, 4030, 4637, 5851, 8279, 10706, 13132, 15557, 17981, 22829, 27676, 32522, 37367, 42211, 47054, 51896, 56737, 66419, 76100, 85780, 95459
OFFSET
1,2
LINKS
Pontus von Brömssen, Table of n, a(n) for n = 1..10000 (first 73 terms from Alexander Markovsky)
PROG
(C#)
static int[] lista(int n){
int a0 = 1, j = 1;
int[] res = new int[n];
for (int i = 0; i < n; i++){
res[i] = a0;
if (a0>1){
if (IsPrime(a0)) //IsPrime(x) returns true if x is prime, false otherwise.
j *= 2;
else
j--;
}
a0 += j;
}
return res;
}
(PARI) lista(nn) = my(va = vector(nn), vj = vector(nn)); va[1] = 1; vj[1] = 1; for (n=2, nn, va[n] = va[n-1] + vj[n-1]; vj[n] = if (isprime(va[n]), 2*vj[n-1], vj[n-1]-1); ); va; \\ Michel Marcus, Apr 03 2025
(Python)
from sympy import isprime
from itertools import islice
def agen(): # generator of terms
an, jn = 1, 1
while True:
yield an
an += jn
jn = 2*jn if isprime(an) else jn-1
print(list(islice(agen(), 53))) # Michael S. Branicky, Apr 10 2025
CROSSREFS
Sequence in context: A164316 A323146 A250006 * A257033 A039674 A090649
KEYWORD
nonn
AUTHOR
Alexander Markovsky, Apr 02 2025
STATUS
approved