# A305369 June 2 2018 read format; with(Bits): # set M = limits on arrays, F = number of terms needed # a = sequence, q = LK = link to next term, p = link to previous term # smn = smallest missing number # have[i] = 1 iff i in sequence M:=50000; F:=10000; have:=Array(1..M,-1): a:=Array(1..M): LK:=Array(1..M): SMN:=Array(1..M): # initiate sequence a[1]:=1; smn:=2; p:=0; q:=1; have[1]:=1; LK[1]:=1; SMN[1]:=2; # get n-th term for n from 2 to F do for j from smn to M do if ((have[j]=-1) and (And(j,q)=q) and (And(j,p)=0)) then a[n]:=j; have[j]:=1; p:=q; q:=j-q; LK[n]:=q; # update smn? if j=smn then for i from 1 to M do if have[i] <> 1 then smn:=i; break; fi; od: fi; SMN[n]:=smn; break; fi; od; # od j od; # od n # [seq(a[n],n=1..F)]; # A305369 # [seq(LK[n],n=1..F)]; # A305371