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.
%I A167507 #72 Jul 07 2022 08:45:06 %S A167507 4,2,4,5,6,4,3,4,4,4,3,4,5,6,8,6,5,7,7,7,5,9,9,10,11,9,8,9,9,9,6,10, %T A167507 10,11,12,10,9,9,10,10,8,12,12,13,14,12,11,12,12,12,9,13,13,14,15,13, %U A167507 12,13,13,13,8,12,12,13,14,12,11,12,12,12,11,12,13,14,16,14,13,15,15,15,12,13 %N A167507 Number of letters in the French spelling of the number n, not counting hyphens and spaces. %C A167507 Sequence A007005 is a variant of this sequence, where spaces and hyphens are counted. %C A167507 In most languages, there exists a number N after which all numbers are written with fewer letters than the number itself. In English, in German and in French, N = 4. Here, if n > 4, then a(n) < n, and if n <= 4, then a(n) > n. - _Bernard Schott_, Jan 11 2019 %H A167507 Wiktionnaire, <a href="http://fr.wiktionary.org/wiki/Annexe:Nombres_de_1_%C3%A0_100_en_fran%C3%A7ais">Annexe:Nombres de 1 à 100 en français</a> (as of Nov. 18, 2009). %H A167507 <a href="/index/Na">Index entries for sequences related to names of numbers</a> %e A167507 The terms a(0),...,a(16) represent the number of characters in the strings "zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize". %e A167507 Since spaces and punctuation are not counted, a(n) is less than the length of the character string whenever the spelling of n contains hyphens, as in "dix-sept" (a(17)=7), or spaces as in "vingt et un" (a(21)=9). %o A167507 (PARI) apply( {A167507(n)=#[0|c<-Vecsmall(French(n)), c>96]}, [0..81]) \\ updated by _M. F. Hasler_, Feb 19 2020 [If old versions of PARI/gp give an error, use e.g. Vec(Vecsmall...).] %o A167507 /* Helper function: spell out n in French. Extended to 10^24 (now further extensible via the 2nd optional argument) for A204593 on Feb 16 2012. */ %o A167507 French(n, t=[10^18,"trillion", /*10^15,"billiard",*/ 10^12,"billion", 10^9,"milliard", 10^6,"million"])={ if( n>999, n>=10^6*t[1] & error(n" is too large - this implementation is restricted to n < 10^",5+#Str(t[1])); forstep(i=1,#t,2, n\t[i] & return(Str(French(n\t[i])" "t[i+1], if(n\t[i]>1,"s",""), if(n%t[i],Str(" "French(n%t[i])),"")))); return(Str(if(n\1000>1,Str(French(n\1000)," "),""),"mille",if(n%1000,Str(" ", French(n%1000)),"")))); %o A167507 n<20 & return([ "zero","un","deux","trois","quatre","cinq","six","sept","huit","neuf", "dix","onze", "douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf"][n+1]); %o A167507 n >= 100 & return( Str( if( n>199, Str(French(n\100)," "), ""), "cent", if(n%100,Str(" ",French(n%100)),if(n>199,"s","")/*deux cents*/))); %o A167507 n > 80 & return( Str( "quatre-vingt-", French( n-80 ))); %o A167507 n%10==0 & return( Str( ["vingt","trente","quarante","cinquante","soixante", "soixante-dix","quatre-vingts"][n\10-1] )); %o A167507 Str( French((n\10-(n>70))*10), if(n%10==1," et ","-"), French(n%10+10*(n>70)))} %o A167507 \\ _M. F. Hasler_, Nov 19 2009 %Y A167507 Cf. A005589 (English analog), A167508 (counts distinct letters). %Y A167507 Cf. A001050 (Finnish analog), A006994 (Russian analog), A007208 (German analog), A011762 (Spanish analog), A026858 (Italian analog). %K A167507 nonn,word %O A167507 0,1 %A A167507 _M. F. Hasler_, Nov 18 2009 %E A167507 Keyword "fini" removed by _M. F. Hasler_, Nov 19 2009 %E A167507 a(80) and a(81) corrected by _Bernard Schott_, Feb 19 2020