cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A102032 a(n) is the smallest positive integer k such that, if kn is written in base 2, it requires exactly n ones.

Original entry on oeis.org

1, 3, 7, 15, 11, 21, 89, 255, 167, 307, 349, 1365, 1259, 6729, 6417, 65535, 28431, 29127, 54757, 209715, 274627, 750685, 706649, 5592405, 2663383, 9679163, 14913005, 186946121, 37025579, 353440017, 1175487521, 4294967295
Offset: 1

Views

Author

Eugen J. Ionascu, Aug 03 2007

Keywords

Comments

This sequence can be considered for any base b. If one calculates the arithmetic mean of the sequence d(n):=a(n)/2^n, i.e. (d(1)+d(2)+...+d(n))/n, one obtains a sequence converging to zero.
From Robert Israel, Aug 26 2015: (Start)
a(2*n) <= (2^A070939(a(n)) + 1)*a(n).
if n is odd, a(n) <= (2^(n*r)-1)/(n*(2^r-1)) where r = A002326((n-1)/2). (End)

Examples

			Example: If n=7 then 7(89)=623 which written in base 2 is 1001101111 using exactly 7 ones and 89 is the smallest positive integer with this property. Hence a(7)=89. The number 1001101111 is usually known as Niven number in base 2. We called 623 a minimal Niven number.
		

References

  • I. Vardi, Niven numbers, Computational Recreations in Mathematics, Addison-Wesley, 1991, pp. 19 and 28--31.

Crossrefs

Programs

  • Maple
    with(numtheory):
    fjv6:=proc(n,m)
    local i,j,k,l,x,x1,y,y1,z,z1,w,stopp,s,t,u,v,A,F,G,out;
    i:=n;stopp:=0;
    x1:=2^(m*i+6)-1; x:=x1 mod i;j:=0;
    while stopp=0 and j<=m*i+5 do
    l:=j;
    while stopp=0 and l<=m*i+4 do
    k:=l;
    while stopp=0 and k<=m*i+3 do
    s:=k;
    while stopp=0 and s<=m*i+2 do
    t:=s;
    while stopp=0 and t<=m*i+1 do
    v:=t;
    while stopp=0 and v<=m*i do y1:=2^(m*i+5-j)+2^(m*i+4-l)+2^(m*i+3-k)+2^(m*i+2-s)+2^(m*i+1-t)+2^(m*i-v); y:=y1 mod i;
    if y=x then z:=(x1-y1)/i;out:=[m*i, z];
    stopp:=1;
    fi;
    v:=v+1;od;t:=t+1;od;s:=s+1;od; k:=k+1; od;l:=l+1;od;j:=j+1;od;
    if stopp=0 then out:=[m*i,0];fi;
    out;
    end:
    formula:=proc(n)
    local x,y,B,expon,outputis, theOddFactor;
    x:=n+1;B:=ifactors(x);expon:=B[2][1][2];theOddFactor:=(n+1)/2^expon;
    y:=isprime(n);
    if theOddFactor=1 and y=true then outputis:=[n,(2^(n+expon-1)+2^n-2^(n-expon)-1)/n];fi;
    if theOddFactor>1 or y=false then outputis:=fjv6(n,1);fi;
    lprint(outputis[1],outputis[2]);
    end:
    fjfromis6:=proc(n,m)
    local k,B,expon, theoddfac,par,stopp,av,sub;
    av:=0;for k from n to m do
    par:=k mod 2;
    if par=0 then B:=ifactors(k);expon:=B[2][1][2];theoddfac:=k/2^expon;
    sub:=fjv6(theoddfac,2^expon);
    lprint(sub[1], sub[2]); fi;
    stopp:=0;
    if par=1 then formula(k); fi;
    od;
    end:
    fjfromis6(1,185);
    # Alternative:
    F:= proc(k,x,n,dmax)
       option remember;
       local d,z,v;
       if k = 0 then
          if x = 0 then return 0 else return infinity fi
       end;
       for d from k-1 to dmax do
          v:= procname(k-1,(x - 2^d) mod n,n, d-1) ;
          if v < 2^d then return v + 2^d fi
       od;
       infinity;
    end proc:
    seq(F(n,0,n,infinity)/n, n=1..100); # Robert Israel, Aug 26 2015
  • Mathematica
    F[k_, x_, n_, dMax_] := F[k, x, n, dMax] = Module[{d, z, v}, If[k == 0, If[x == 0, Return[0], Return[Infinity]]]; For[d = k - 1, d <= dMax, d++, v = F[k - 1, Mod[x - 2^d, n], n, d - 1]; If[v < 2^d, Return[v + 2^d]]]; Infinity];
    Table[F[n, 0, n, Infinity]/n, {n, 1, 32}] (* Jean-François Alcover, Jun 22 2020, after Robert Israel *)
  • PARI
    a(n)=my(K=n);while(hammingweight(K)!=n,K+=n);K/n \\ Charles R Greathouse IV, Feb 04 2013

Formula

a(n) = 2^n-1 if n=2^k or a(n) = (2^(n+k-1)+2^n-2^(n-k)-1)/n if n=2^k-1 is a prime number; unknown for other values of n.

Extensions

Edited by Ray Chandler, Nov 16 2008