OFFSET
1,2
COMMENTS
Is this sequence a permutation of the positive integers?
a(n+2)*a(n+1)/a(n) = A160257(n).
From Alois P. Heinz, May 07 2009: (Start)
After computing about 10^7 elements of A160256 we have
a(10000000) = 2099597439752627193722111679586865799879114417
a(10000001) = 992131130100042530286371815859160
Largest element so far:
a(8968546) = 24941014474345046106920043019655502800839523254002490663461\
524119982890708516899294655028121578883343551450916846444559467340663409\
549447588184641816
Still missing:
19, 23, 27, 29, 31, 32, 37, 38, 41, 43, 45, 46, 47, 53, 54, 57, 58, 59,
61, 62, 64, 67, 69, 71, 72, 73, 74, 76, 79, 81, 82, 83, 86, 87, 89, 90,
92, 93, 94, 95, 96, 97, 101, 103, 105, 106, 107, 108, 109, 111, 112, 113,
114, 115, 116, 118, 122, 123, 124, 125, 127, 128, 129, 131, 133, 134, ...
Primes in sequence so far:
2, 3, 5, 7, 11, 13, 17
The sequence consists of two subsequences, even (=red) and odd (=blue), see plot. (End)
a(n) is the least multiple of a(n-2)/gcd(a(n-1),a(n-2)) that has not previously occurred. - Thomas Ordowski, Jul 15 2015
LINKS
Alois P. Heinz, Table of n, a(n) for n = 1..130000
Alois P. Heinz, Color plot of first 600 terms
MAPLE
b:= proc(n) option remember; false end:
a:= proc(n) option remember; local k, m;
if n<3 then b(n):=true; n
else m:= denom(a(n-1)/a(n-2));
for k from m by m while b(k) do od;
b(k):= true; k
fi
end:
seq(a(n), n=1..100); # Alois P. Heinz, May 16 2009
# alternative
A160256 := proc(n)
local r, m, a, fnd, i ;
option remember;
if n <=2 then
n;
else
r := procname(n-2)/igcd(procname(n-1), procname(n-2)) ;
for m from 1 do
a := m*r ;
fnd := false;
for i from 1 to n-1 do
if procname(i) = a then
fnd := true;
break;
end if;
end do:
if not fnd then
return a ;
end if;
end do:
end if;
end proc:
seq(A160256(n), n=1..40) ; # R. J. Mathar, Jul 30 2024
MATHEMATICA
f[s_List] := Block[{k = 1, m = Denominator[ s[[ -1]]/s[[ -2]]]}, While[ MemberQ[s, k*m] || Mod[k*m*s[[ -1]], s[[ -2]]] != 0, k++ ]; Append[s, k*m]]; Nest[f, {1, 2}, 56] (* Robert G. Wilson v, May 17 2009 *)
PROG
(PARI)
LQ(nMax)={my(a1=1, a2=1, L=1/*least unseen number*/, S=[]/*used numbers above L*/);
while(1, /*cleanup*/ while( setsearch(S, L), S=setminus(S, Set(L)); L++);
/*search*/ for(a=L, nMax, a*a2%a1 & next; setsearch(S, a) & next;
print1(a", "); a1=a2; S=setunion(S, Set(a2=a)); next(2)); return(L))} \\ M. F. Hasler, May 06 2009
(PARI) L=10^4; a=vector(L); b=[1, 2]; a[1]=1; a[2]=2; sb=2; P2=2; pending=[]; sp=0; for(n=3, L, if(issquare(n), b=vecsort(concat(b, pending)); sb=n-1; while(sb>=2*P2, P2*=2); sp=0; pending=[]); c=a[n-2]/gcd(a[n-2], a[n-1]); u=0; while(1, u+=c; found=0; s=0; pow2=P2; while(pow2, s2=s+pow2; if((s2<=sb)&&(b[s2]<=u), s=s2); pow2\=2); if((s>0)&&(b[s]==u), found=1, for(i=1, sp, if(pending[i]==u, found=1; break))); if(found==0, break)); a[n]=u; pending=concat(pending, u); sp++); a \\ Robert Gerbicz, May 16 2009
(Haskell)
import Data.List (delete)
a160256 n = a160256_list !! (n-1)
a160256_list = 1 : 2 : f 1 2 [3..] where
f u v ws = g ws where
g (x:xs) | mod (x * v) u == 0 = x : f v x (delete x ws)
| otherwise = g xs
-- Reinhard Zumkeller, Jan 31 2014
(Python)
from math import gcd
A160256_list, l1, l2, m, b = [1, 2], 2, 1, 1, {1, 2}
for _ in range(10**3):
i = m
while True:
if not i in b:
A160256_list.append(i)
l1, l2, m = i, l1, l1//gcd(l1, i)
b.add(i)
break
i += m # Chai Wah Wu, Dec 09 2014
CROSSREFS
KEYWORD
nonn,look
AUTHOR
Leroy Quet, May 06 2009
EXTENSIONS
More terms from M. F. Hasler, May 06 2009
Edited by N. J. A. Sloane, May 16 2009
STATUS
approved