read("transforms");
numbralADD := proc(a, b) option remember; ORnos(a, b) ; end proc:
numbralMUL := proc(a, b) option remember; local p, bshf, s ; p := 0 ; bshf := b ; for s from 0 do if bshf mod 2 <> 0 then p := numbralADD(p, 2^s*a ) ; end if; bshf := floor(bshf/2) ; if bshf = 0 then return p; end if; end do; end proc:
isnumbralDiv := proc(n, d) option remember; for e from 0 do if numbralMUL(e, d) = n then return true; elif numbralMUL(e, d) > 2*n then return false; end if; end do: end proc:
numbralDivisors := proc(n) option remember; local d, i; d := {} ; for i from 1 to n do if isnumbralDiv(n, i) then d := d union {i} ; end if; end do: d ; end proc:
A067399 := proc(n) nops(numbralDivisors(n)) ; end proc:
A190376 := proc(n) add(A067399(k), k=2^n..2^(n+1)-1) ; end proc: # R. J. Mathar, May 30 2011
|