\(\( (*\ 082404\ *) 
 (*\ googleFinA . nb\ *) 
 (*\ 
      ouch . \ \ I\ spelled\ forty\ incorrectly\ 
        \((as\ the\ classic\ "fourty")\)\ *) 
 (*\ 
      correct\ the\ other\ versions\ *) 
 (*\ 
      This\ seems\ to\ do\ the\ \(trick!\)\ \ *) 
 (*\ 
      Part\ \(I : \ f \((f \((f \((x)\))\))\)\) = 60097, \ x = 2465\ *) 
 (*
      \ Part\ \(II : \ f \((f \((x)\))\)\) = 1, \ x = 6808\ *) 

    
 (*\ new\ hypothesis\ testing\ approach\ *) 
 (*\ 
      adding\ "positive"\ to\  + \ numbers\ didn' t\ help\ *) 
 (*\ 
      there\ simply\ may\ be\ no\ solution\ to\ f \((f \((x)\))\) = 1\ *) 
      
 (*\ are\ there\ any\ other\ synonyms\ for\ \("negative"?\)\ *) 
      
 (*\ double\ check\ your\ numbers, \ code, \ and\ data\ base\ *) 
 (*
      \ can\ you\ come\ up\ with\ a\ plausible\ argument\ not\ to\ go\ higher
        \ than\ 200\ \(characters?\)\ *) 
 (*\ however, \ 
      I' ve\ tried\ up\ to\ 1000\ and\ it\ didn' t\ help\ *) 

    
 (*\ 082104\ *) 
 (*\ google6 . nb\ *) 
 (*\ 
      my\ silly\ attempt\ to\ solve\ the\ "google challenge"\ in\ Physics
        \ Today\ *) 
 (*\ 
      what\ if\ the\ solution\ to\ part\ II\ f \((f \((z)\))\) = 
        1\ is\ a\ real\ fax\ \(number?\)\ *) 
 (*\ 
      It\ would\ be\ just\ like\ them\ to\ do\ that\ *) 
 (*\ 
      they\ call\ z\ the\ "machine extension number"\ *) 
 (*\ 
      this\ implies\ a\ 4\ digit\ number\ to\ me, \ 
      but\ unless\ my\ algorithm\ is\ screwed\ up\ *) 
 (*\ 
      there\ are\ no\ 4\ digit\ numbers\ that\ meet\ this\ criterion\ *) \ 

    
 (*\ but\ they\ could\ be\ hinting\ at\ a\ *) 
 (*\ 
      more\ generic\ term\ without\ using\ the\ word\ "phone number"\ *) 
      
 (*\ which\ would\ be\ to\ "obvious"\ *) 

    
 (*\ Form\ 
        \(1 : \ 1 - aaa - ppp - 
            ssss\ or\ Form\ \(2 : \ aaa - ppp - ssss\)\)\ *) 
 (*\ 
      aaa\ might\ be\ 800, \ 888, \ 
      or\ the\ real\ area\ code\ for\ Google\ Inc . \ in\ Mt . \ View\ *) 
      
 (*\ ppp\ could\ be\ cycled\ over\ or\ look\ up\ some\ real\ prefixes
        \ at\ Google\ \(Inc . \)\ *) 

    
 (*\ names\ up\ to\ 999999999999\ i . e . \ \((10^12)\) - 1\ *) 
 (*\ 
      still\ need\ negative\ numbers\ *) 
 (*\ 
      add\ more\ clever\ #\ creator\ using\ mathematica\ string\ functions
        \ *) 


 (*\ 082204\ *) 
 (*\ 
      I' ve\ managed\ to\ solve\ the\ first\ part\ of\ the\ google\ challenge
        \ *) 
 (*\ f \((f \((f \((x)\))\))\) = 60097, \ x = 2465\ *) 
 (*\ 
      using\ google3 . nb\ *) \ 
    
 (*\ but\ the\ second\ part\ *) 
 (*\ 
      f \((f \((x)\))\) = 1\ find\ x\ *) 
 (*\ 
      has\ proved\ more\ ellusive\ even\ including\ negative\ numbers\ from
          \  + \(/\(-999999999\)\)\ *) 

    
 (*\ I\ hesitate\ to\ increase\ the\ range\ beyond\ 999999999\ 
        \((just\ takes\ too\ long)\)\ *) 
 (*\ 
      but\ perhaps\ compile\ the\ \(functions?\)\ *) 

    
 (*\ There\ may\ be\ a\ number\ theory\ trick\ that\ can\ be\ used\ *) 
      

 (*\ e . g . \ for\ large\ numbers; \ \ however, \ 
      unless\ the\ large\ number\ *) 
 (*\ has\ a\ very\ long\ name, \ 
      finding\ even\ an\ f \((x)\) = 1\ will\ prove\ unlikely\ *) 

    
 (*\ google5 . nb\ adds\ the\ "um-teen hundred"\ standard\ *) 
 (*
      \ however, \ 
      it\ may\ have\ to\ do\ with\ a\ naming\ convention\ thing\ *) 
 (*\ 
      go\ back\ to\ the\ "no um-teen hundred"\ standard\ *) 
 (*\ 
      a\ weaker\ one\ is\ "minus"\ versus\ "negative"\ *) 
 (*\ 
      are\ there\ any\ \(others?\)\ *) 
 (*\ is\ the\ code\ \(working?\)\ *) 
      

 (*\ try\ removing\ spaces\ for\ StringLength\ comparison\ *) 

    
 (*\ google4 . nb\ works\ fine, \ 
      and\ has\ up\ to\  + \(/\(-999999999\)\)\ *) 
 (*\ 
      google3 . nb\ works\ fine, \ 
      but\ has\ limited\ range\ and\ only\ positive\ numbers\ *) 
 (*\ 
      with\ negative\ numbers, \ 
      there\ is\ a\ language\ ambiguity\ "minus"\ or\ "negative"\ *) 
      

 (*\ standard : \ use "negative"\ rather\ than\ "minus"\ *) 
      
 (*\ this\ can\ be\ changed\ *) 

    
 (*\ assumption : \ everything\ is\ in\ base\ 10, \ positive, \ 
      and\ real\ *) 

    
 (*\ pre - google5 . nb\ *) 
 (*\ 
      standard : \ for\ the\ hundreds\ place, \ 
      "um-teenth hundred"\ is\ not\ used\ *) 
 (*\ 
      rather\ it\ is\ written\ out\ 
        "one thousand x hundred blah blah"\ *) 
 (*\ however, \ 
      the\ "um-teenth thousand"\ is\ used\ for\ the\ thousands\ place\ *) 
      
 (*\ this\ double\ standard\ could\ cause\ trouble\ and\ is\ an\ 
        intrinsic\ language\ ambiguity/degeneracy\ *) 
 (*\ 
      should\ be\ easy\ enough\ to\ modify\ to\ include\ both\ at\ some\ point
        \ *) 
\)\)

\(
 (*\ 
      create\ "data base"\ of\ numbers\ and\ their\ number\ of\ characters
        \ *) 
 (*\ written\ in\ American\ English\ *) 
 (*\ 
      this\ is\ sort\ of\ a\ "minimal"\ set, \ 
      so\ other\ numbers\ can\ be\ constructed\ from\ them\ *) 
 (*\ 
      regardless, \ fairly\ unelegent\ and\ brute\ force\ *) 
	

    sp = " "; 
    
 (*\ try\ a\ "minus"\ convention\ instead\ *) 
 (*\ 
      ng = " negative "; \ eng = 8; \ *) 
 (*\ ng = \ "minus "; 
      eng = 5; \ *) 
ng = " negative "; \ eng = 8; 

    
 (*\ add\ the\ very\ silly\ "positive"\ switch\ *) 
 (*\ 
      to\ turn\ it\ off, \ just\ make\ it\  = ""\ *) 
 (*\ 
      ps = " positive"; \ eps = 8; \ *) 
ps = \ ""; eps = 0; 


    x0 = " zero "; e0 = 4; 
x1 = " one "; \ e1 = 3; 

    x2 = " two "; \ e2 = 3; 
x3 = " three "; \ e3 = 5; 

    x4 = " four "; \ e4 = 4; 
x5 = " five "; \ e5 = 4; 

    x6 = " six "; \ e6 = 3; 
x7 = " seven "; \ e7 = 5; 

    x8 = " eight "; \ e8 = 5; 
x9 = " nine "; \ e9 = 4; 

    x10 = " ten "; \ e10 = 3; 
x11 = " eleven "; \ e11 = 6; 

    x12 = " twelve "; \ e12 = 6; 
x13 = " thirteen "; \ e13 = 8; 

    x14 = " fourteen "; \ e14 = 8; 
x15 = " fifteen "; \ e15 = 7; 

    x16 = " sixteen "; \ e16 = 7; 
x17 = " seventeen "; \ e17 = 9; 

    x18 = " eighteen "; \ e18 = 8; 
x19 = " nineteen "; \ e19 = 8; 

    x20 = " twenty "; \ e20 = 6; 
x30 = " thirty "; \ e30 = 6; 

    x40 = " forty "; \ e40 = 5; 
x50 = " fifty "; \ e50 = 5; 

    x60 = " sixty "; \ e60 = 5; 
x70 = " seventy "; \ e70 = 7; 

    x80 = " eighty "; \ e80 = 6; 
x90 = " ninety "; \ e90 = 6; 

    x100 = " hundred "; \ e100 = 7; 
x1000 = " thousand "; \ 
    e1000 = 8; 
xM = " million "; \ eM = 7; 
xB = \ " billion "; \ 
    eB = 7; 

num = {"", x1, x2, x3, x4, x5, x6, x7, x8, x9}; 

    teen = {x10, x11, x12, x13, x14, x15, x16, x17, x18, x19}; 

    tens = {x10, x20, x30, x40, x50, x60, x70, x80, x90}; 


    enum = {0, e1, e2, e3, e4, e5, e6, e7, e8, e9}; 

    eteen = {e10, e11, e12, e13, e14, e15, e16, e17, e18, e19}; 

    etens = {e10, e20, e30, e40, e50, e60, e70, e80, e90}; 

    
 (*\ working\ in\ blocks\ of\ 100, \ 
      create\ the\ name\ for\ sanity\ checks\ at\ QA\ later\ on\ *) 

    NumToWordHund[bb_, cc_, dd_] := 
		
	
      If[\((bb == 0)\) && \((cc == 0)\), num[\([dd + 1]\)], 
				
	
        If[\((bb == 0)\), 
	
          If[\((cc > 0)\) && \((dd == 0)\), tens[\([cc]\)], 
	
            If[cc == 1, teen[\([dd + 1]\)], 
	
              If[\((cc > 1)\) && \((dd > 0)\), 
                tens[\([cc]\)]<>num[\([dd + 1]\)]]]], 
	
	
          If[\((bb > 0)\), 
	
            If[\((cc == 0)\), num[\([bb + 1]\)]<>x100<>num[\([dd + 1]\)], 
	
              If[\((cc > 0)\) && \((dd == 0)\), 
                num[\([bb + 1]\)]<>x100<>tens[\([cc]\)], 
	
                If[cc == 1, num[\([bb + 1]\)]<>x100<>teen[\([dd + 1]\)], 
	
                  If[\((cc > 1)\) && \((dd > 0)\), 
                    num[\([bb + 1]\)]<>x100<>tens[\([cc]\)]<>
                      num[\([dd + 1]\)]

                    																			]]]]]]]
\)\(NumToWordTens[cc_, dd_] := 
		
	
      If[\((cc == 0)\), num[\([dd + 1]\)], 
	
        If[\((cc > 0)\) && \((dd == 0)\), tens[\([cc]\)], 
	
          If[cc == 1, teen[\([dd + 1]\)], 
	
            If[\((cc > 1)\) && \((dd > 0)\), 
              tens[\([cc]\)]<>num[\([dd + 1]\)]]]]]
	
    
 (*\ removes\ um - teen\ hundred\ standard\ *) 
 (*\ 
      comment\ out\ below\ and\ add\ bracket\ to\ add\ "um-teen"\ hundred
        \ standard\ for\ 1*00\ numbers\ *) 
 (*\ 
      convets\ a\ number\  > 1000, \ in\ blocks\ of\ 100, \ 
      into\ a\ name\ for\ sanity\ checks\ and\ QA\ later\ on\ *) \)\(NumToWord[ssn_, a10_, a11_, a12_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, 
        a8_, a9_] := 

      If[ssn == 0, 

        If[\((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\) && 
            \((a1 == 0)\) && \((a2 == 0)\) && \((a3 == 0)\) && 
            \((a4 == 0)\) && \((a5 == 0)\) && \((a6 == 0)\) && 
            \((a7 == 0)\) && \((a8 == 0)\) && \((a9 == 0)\), "zero", 

          If[\((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\) && 
              \((a1 == 0)\) && \((a2 == 0)\) && \((a3 == 0)\) && 
              \((a4 == 0)\) && \((a5 == 0)\) && \((a6 == 0)\), 
            ps<>NumToWordHund[a7, a8, a9], 
            
 (*\ If[
                \((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\) && 
                  \((a1 == 0)\) && \((a2 == 0)\) && \((a3 == 0)\) && 
                  \((a4 == 0)\) && \((a5 == 0)\) && \((a6 == 1)\) && 
                  \((a7 > 0)\), 
                ps<>teen[\([a7 + 1]\)]<>x100<>NumToWordTens[a8, a9], \ *) 

            If[\((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\) && 
                \((a1 == 0)\) && \((a2 == 0)\) && \((a3 == 0)\), 
              ps<>NumToWordHund[a4, a5, a6]<>x1000<>
                NumToWordHund[a7, a8, a9], 

              If[\((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\), 
                ps<>NumToWordHund[a1, a2, a3]<>xM<>NumToWordHund[a4, a5, a6]<>
                  x1000<>NumToWordHund[a7, a8, a9], 

                ps<>NumToWordHund[a10, a11, a12]<>xB<>
                  NumToWordHund[a1, a2, a3]<>xM<>NumToWordHund[a4, a5, a6]<>
                  x1000<>NumToWordHund[a7, a8, a9]]]]], 

        If[ssn == 1, 		

          If[\((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\) && 
              \((a1 == 0)\) && \((a2 == 0)\) && \((a3 == 0)\) && 
              \((a4 == 0)\) && \((a5 == 0)\) && \((a6 == 0)\) && 
              \((a7 == 0)\) && \((a8 == 0)\) && \((a9 == 0)\), "zero", 

            If[\((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\) && 
                \((a1 == 0)\) && \((a2 == 0)\) && \((a3 == 0)\) && 
                \((a4 == 0)\) && \((a5 == 0)\) && \((a6 == 0)\), 
              ng<>NumToWordHund[a7, a8, a9], 
              
 (*\ If[
                  \((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\) && 
                    \((a1 == 0)\) && \((a2 == 0)\) && \((a3 == 0)\) && 
                    \((a4 == 0)\) && \((a5 == 0)\) && \((a6 == 1)\) && 
                    \((a7 > 0)\), 
                  ng<>teen[\([a7 + 1]\)]<>x100<>NumToWordTens[a8, a9], \ *) 

              If[\((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\) && 
                  \((a1 == 0)\) && \((a2 == 0)\) && \((a3 == 0)\), 
                ng<>NumToWordHund[a4, a5, a6]<>x1000<>
                  NumToWordHund[a7, a8, a9], 

                If[\((a10 == 0)\) && \((a11 == 0)\) && \((a12 == 0)\), 
                  ng<>NumToWordHund[a1, a2, a3]<>xM<>
                    NumToWordHund[a4, a5, a6]<>x1000<>
                    NumToWordHund[a7, a8, a9], 

                  ng<>NumToWordHund[a10, a11, a12]<>xB<>
                    NumToWordHund[a1, a2, a3]<>xM<>NumToWordHund[a4, a5, a6]<>
                    x1000<>NumToWordHund[a7, a8, a9]]]]]]]		
							
    \)

\(hbil[u4_] := If[Abs[u4] > 10^11 - 1, Floor[Abs[u4]/10^11], 0]; 

    tbil[u5_] := 
      If[Abs[u5] > 10^10 - 1, Floor[\((Abs[u5] - hbil[u5]\ 10^11)\)/10^10], 
        0]; 
bil[u6_] := 
      If[Abs[u6] > 10^9 - 1, 
        Floor[\((Abs[u6] - hbil[u6]\ 10^11 - tbil[u6]\ 10^10)\)/10^9], 0]; 

    hmil[u1_] := 
      If[Abs[u1] > 99999999, 
        Floor[\((Abs[u1] - hbil[u1]\ 10^11 - tbil[u1]\ 10^10 - bil[u1]\ 10^9)
              \)/100000000], 0]; 

    tmil[u2_] := 
      If[Abs[u2] > 9999999, 
        Floor[\((
              Abs[u2] - hbil[u2]\ 10^11 - tbil[u2]\ 10^10 - bil[u2]\ 10^9 - 
                hmil[u2]\ 10^8)\)/10000000], 0]\)mil[u3_] := 
      If[Abs[u3] > 999999, 
        Floor[(
              Abs[u3] - hbil[u3] 10^11 - tbil[u3] 10^10 - bil[u3] 10^9 - 
                hmil[u3] 10^8 - tmil[u3] 10^7)/1000000], 0]hthou[uu_] := 
      If[Abs[uu] > 99999, 
        Floor[(
              Abs[uu] - hbil[uu] 10^11 - tbil[uu] 10^10 - bil[uu] 10^9 - 
                hmil[uu] 10^8 - tmil[uu] 10^7 - mil[uu] 10^6)/100000], 0]
        \(tthou[vv_] := 
      If[Abs[vv] > 9999, 
        Floor[\((
              Abs[vv] - hbil[vv]\ 10^11 - tbil[vv]\ 10^10 - bil[vv]\ 10^9 - 
                hmil[vv]\ 10^8 - tmil[vv]\ 10^7 - mil[vv]\ 10^6 - 
                hthou[vv]\ 10^5)\)/10000], 0]; 

    thou[xx_] := 
      If[Abs[xx] > 999, 
        Floor[\((
              Abs[xx] - hbil[xx]\ 10^11 - tbil[xx]\ 10^10 - bil[xx]\ 10^9 - 
                hmil[xx]\ 10^8 - tmil[xx]\ 10^7 - mil[xx]\ 10^6 - 
                hthou[xx]\ 10^5 - tthou[xx]\ 10^4)\)/1000], 0]; 

    hund[yy_] := 
      If[Abs[yy] > 99, 
        Floor[\((
              Abs[yy] - hbil[yy]\ 10^11 - tbil[yy]\ 10^10 - bil[yy]\ 10^9 - 
                hmil[yy]\ 10^8 - tmil[yy]\ 10^7 - mil[yy]\ 10^6 - 
                hthou[yy]\ 10^5 - tthou[yy]\ 10^4 - thou[yy]\ 10^3)\)/100], 
        0]; 
tensp[zz_] := 
      If[Abs[zz] > 9, 
        Floor[\((
              Abs[zz] - hbil[zz]\ 10^11 - tbil[zz]\ 10^10 - bil[zz]\ 10^9 - 
                hmil[zz]\ 10^8 - tmil[zz]\ 10^7 - mil[zz]\ 10^6 - 
                hthou[zz]\ 10^5 - tthou[zz]\ 10^4\  - thou[zz]\ 10^3 - 
                hund[zz]\ 10^2)\)/10], 0]; 

    ones[qq_] := 
      \((Abs[qq] - hbil[qq]\ 10^11 - tbil[qq]\ 10^10 - bil[qq]\ 10^9 - 
          hmil[qq]\ 10^8 - tmil[qq]\ 10^7 - mil[qq]\ 10^6 - hthou[qq]\ 10^5 - 
          tthou[qq]\ 10^4 - thou[qq]\ 10^3 - hund[qq]\ 10^2 - tensp[qq]\ 10)
        \); \)

\( (*\ 
      takes\ a\ number\ from\ user\ input\ and\ gives\ it\ a\ name\ in\ 
        American\ English\ *) 

    Nm[xxx_] := 
      NumToWord[If[xxx < 0, 1, 0], hbil[xxx], tbil[xxx], bil[xxx], hmil[xxx], 
        tmil[xxx], mil[xxx], hthou[xxx], tthou[xxx], thou[xxx], hund[xxx], 
        tensp[xxx], ones[xxx]]

    
 (*\ number\ of\ characters\ in\ a\ number' s\ name\ using\ American\ 
        English\ *) 
 (*\ spaces\ not\ included\ *) \)\(NumLett[myNumb_] := 
      StringLength[StringReplace[Nm[myNumb], " " -> ""]]

    
 (*\ Google\ function\ *) \)\(f[p_] := 3\ NumLett[p]^3 - p
\)

\( (*\ QA\ *) 
abc = 1441; 
Nm[abc]\)NumLett[abc]f[abc]Nm[f[abc]]test = 15105282689hbil[test]tbil[test]bil[test]hmil[test]tmil[test]mil[test]hthou[test]tthou[test]thou[test]hund[test]tensp[test]\(ones[test]
\)

\( (*\ 
      hypothesis\ testing\ rather\ than\ brute\ force\ to\ invert\ f 
        \((x)\)\ *) 
 (*\ if\ you\ are\ given\ f \((x)\) = a, \ 
      this\ may\ be\ faster\ *) 

    
 (*\ since\ the\ number\ of\ letters\ in\ just\ about\ any\ number\ is\ 
        going\ to\ be\ less\ than\ 200\ *) 
 (*\ 
      it\ is\ much\ faster\ in\ principle\ to\ iterate\ over\ the\ number\ of
        \ letters\ rather\ than\ *) 
 (*\ the\ numbers\ themselves\ *) 

    
 (*\ 0. \ Given\ f \((x)\) = a, \ a\ is\  > 0\ and\ real\ *) 
 (*\ 
      I . \ Pick\ Ex\ e . g . \ in\ iteration\ *) 
 (*\ 
      II . \ generate\ x\ hypothesis\ from\ f \((x)\) = a\ *) 
 (*\ 
      i . e . \ xhypoth = 3\ Ex^3 - a\ *) 
 (*\ 
      III . \ test\ to\ see\ if\ Ex\ represents\ the\ number\ of\ letters\ in
        \ xhypoth\ *) 
 (*\ IV . \ if\ it\ does, \ 
      then\ you\ have\ inverted\ f \((x)\) = a\ *) 
 (*\ V . \ if\ not, \ 
      then\ continue\ *) 


    hypoth[a_] := 
      Do[If[NumLett[3\ nn^3 - a] == nn, 
          Print[nn, " ", 3\ nn^3 - a, " ", Nm[3\ nn^3 - a], " ", 
            f[3\ nn^3 - a]]], {nn, 0, 200}]\)Thypoth[a_, nn_] := 
      Print[nn, " ", NumLett[3 nn^3 - a], " ", 3 nn^3 - a, " ", 
        Nm[3 nn^3 - a], " ", f[3 nn^3 - a]]

\(\( (*\ Do\ the\ problem\ part\ I\ and\ II\ by\ brute\ force\ *) 

    Do[If[f[f[f[i]]] == 60097, 
        Print[i, " ", f[i], " ", f[f[i]], " ", f[f[f[i]]]]], {i, 
        0, 7000}]\)\)

Do[If[f[f[j]] == 1, Print[j, " ", f[j], " ", f[f[j]]]], {j, 0, 
        7000}]

\(hypoth[1]
\)hypoth[59048]hypoth[206762]\(hypoth[311468]
\)f[f[6808]]f[f[387583]]

\(hypoth[60097]
\)hypoth[20903]hypoth[91862]\(hypoth[337856]
\)hypoth[11041]hypoth[86908]hypoth[-26006]hypoth[163690]hypoth[283138]\(hypoth[\(-64481\)]
\)f[f[f[244511]]]f[f[f[320735]]]f[f[f[363959]]]f[f[f[2465]]]f[f[f[224561]]]f[f[f[85055]]]f[f[f[-35065]]]f[f[f[375950]]]

\( (*\ QA\ on\ problem\ one; \ \ 
      looks\ like\ the\ answer\ is\ Y = 2465\ *) 
f[f[f[2465]]]\)Nm[2465]\(NumLett[2465]
\)Nm[NumLett[2465]]\(NumLett[NumLett[2465]]
\)f[2465] == 3 NumLett[2465]^3 - 2465\(f[2465]
\)Nm[f[2465]]\(NumLett[f[2465]]
\)f[86908] == 3 NumLett[86908]^3 - 86908\(f[86908]
\)Nm[f[86908]]\(NumLett[f[86908]]
\)f[20903] == 3 NumLett[20903]^3 - 20903

\( (*\ plots\ *) 
xmax = 4000; 
ef = Table[NumLett[x], {x, 0, xmax}]; 

    tf = Table[f[x], {x, 0, xmax}]; 
p1 = ListPlot[ef]\)p3 = ListPlot[tf]Show[p1, p3]

Do[Print[x, " ", Nm[x], " ", NumLett[x], " ", f[x], 
        " ", NumLett[f[x]], " ", f[f[x]]], {x, 1000, 9000, 100}]

printhypoth[a_] := 
      Do[Print[NumLett[3 nn^3 - a] == nn, " ", nn, " ", 
          NumLett[3 nn^3 - a], " ", 3 nn^3 - a, " ", 
          Nm[3 nn^3 - a], " ", f[3 nn^3 - a]], {nn, 0, 100}]diffnum[a_] := Table[nn - NumLett[3 nn^3 - a], {nn, 0, 1000}]

\( (*\ 
      this\ gives\ a\ sense\ of\ the\ increasing\ nature\ of\ the\ difference
        \ between\ *) 
 (*\ 
      a\ number\ and\ its\ required\ number\ of\ letters\ to\ make\ f 
          \((x)\) = a\ true\ *) 
 (*\ 
      it\ is\ interesting\ that\ the\ zero\ crossing, \ 
      where\ a\ solution\ potentially\ exists\ *) 
 (*\ 
      is\ near\ 40 - 50\ in\ all\ graphs\ *) 

    
 (*\ it\ seems\ very\ unlikely\ that\ a\ freak\ number\ with\  > 
        100\ letters\ in\ it\ could\ suddenly\ *) 
 (*\ 
      buck\ the\ trend\ and\ drive\ the\ difference\ to\ zero\ *) 
 (*\ 
      but\ I\ can' t\ prove\ it, \ except\ by\ my\ "data"\ here\ *) 
 (*
      \ if\ I\ take\ the\ trend\ line\ and\ assume\ a\ gaussian\ smear, \ 
      I\ could\ probably\ put\ a\ confidence\ *) 
 (*\ 
      level\ on\ the\ non - existence\ of\ f \((f \((x)\))\) = 1\ *) 
 (*\ 
      i . e . \ if\ it\ does\ exist\ in\ the\ sweet\ spot\ 
        \((and\ it\ needs\ to\ be\ tested\ there)\), \ then\ it\ doesn' t\ *) 
      
 (*\ exist\ for\ numbers\ with\ greater\ than\ 100\ letters\ with\ X\ 
        percent\ CL\ *) 
ListPlot[diffnum[311468]]\)ListPlot[diffnum[1]]ListPlot[diffnum[206762]]