Last active
December 5, 2015 17:59
-
-
Save CharlesOkwuagwu/15fc888d94f3f7c80970 to your computer and use it in GitHub Desktop.
Converts any positive integer to words (up to 10^1004 -1 :))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule ToWords do | |
| @moduledoc """ | |
| Converts any positive integer to words (up to 10^1004 -1 :)) | |
| """ | |
| #http://www.olsenhome.com/bignumbers/ | |
| @illion ~w[ | |
| m | |
| b | |
| tr | |
| quadr | |
| quint | |
| sext | |
| sept | |
| oct | |
| non | |
| dec | |
| undec | |
| duodec | |
| tredec | |
| quattuordec | |
| quindec | |
| sedec | |
| septendec | |
| octodec | |
| novendec | |
| vigint | |
| unvigint | |
| duovigint | |
| tresvigint | |
| quattuorvigint | |
| quinvigint | |
| sesvigint | |
| septemvigint | |
| octovigint | |
| novemvigint | |
| trigint | |
| untrigint | |
| duotrigint | |
| trestrigint | |
| quattuortrigint | |
| quintrigint | |
| sestrigint | |
| septentrigint | |
| octotrigint | |
| noventrigint | |
| quadragint | |
| unquadragint | |
| duoquadragint | |
| tresquadragint | |
| quattuorquadragint | |
| quindragint | |
| sesquadragint | |
| septenquadragint | |
| octoquadragint | |
| novenquadragint | |
| quinquagint | |
| unquinquagint | |
| duoquinquagint | |
| tresquinquagint | |
| quattuorquinquagint | |
| quinquinquagint | |
| sesquinquagint | |
| septenquinquagint | |
| octoquinquagint | |
| novenquinquagint | |
| sexagint | |
| unsexagint | |
| duosexagint | |
| tresexagint | |
| quattuorsexagint | |
| quinsexagint | |
| sesexagint | |
| septensexagint | |
| octosexagint | |
| novensexagint | |
| septuagint | |
| unseptuagint | |
| duoseptuagint | |
| treseptuagint | |
| quattuorseptuagint | |
| quinseptuagint | |
| seseptuagint | |
| septenseptuagint | |
| octoseptuagint | |
| novenseptuagint | |
| octogint | |
| unoctogint | |
| duooctogint | |
| tresoctogint | |
| quattuoroctogint | |
| quinoctogint | |
| sexoctogint | |
| septemoctogint | |
| octooctogint | |
| novemoctogint | |
| nonagint | |
| unnonagint | |
| duononagint | |
| trenonagint | |
| quattuornonagint | |
| quinnonagint | |
| senonagint | |
| septenonagint | |
| octononagint | |
| novenonagint | |
| cent | |
| uncent | |
| duocent | |
| trescent | |
| quattuorcent | |
| quincent | |
| sexcent | |
| septencent | |
| octocent | |
| novencent | |
| decicent | |
| undecicent | |
| duodecicent | |
| tredecicent | |
| quattuordecicent | |
| quindecicent | |
| sedecicent | |
| septendecicent | |
| octodecicent | |
| novendecicent | |
| viginticent | |
| unviginticent | |
| duoviginticent | |
| tresviginticent | |
| quattuorviginticent | |
| quinviginticent | |
| sesviginticent | |
| septemviginticent | |
| octoviginticent | |
| novemviginticent | |
| trigintacent | |
| untrigintacent | |
| duotrigintacent | |
| trestrigintacent | |
| quattuortrigintacent | |
| quintrigintacent | |
| sestrigintacent | |
| septentrigintacent | |
| octotrigintacent | |
| noventrigintacent | |
| quadragintacent | |
| unquadragintacent | |
| duoquadragintacent | |
| tresquadragintacent | |
| quattuorquadragintacent | |
| quinquadragintacent | |
| sesquadragintacent | |
| septenquadragintacent | |
| octoquadragintacent | |
| novenquadragintacent | |
| quinquagintacent | |
| unquinquagintacent | |
| duoquinquagintacent | |
| tresquinquagintacent | |
| quattuorquinquagintacent | |
| quinquinquagintacent | |
| sesquinquagintacent | |
| septenquinquagintacent | |
| octoquinquagintacent | |
| novenquinquagintacent | |
| sexagintacent | |
| unsexagintacent | |
| duosexagintacent | |
| tresexagintacent | |
| quattuorsexagintacent | |
| quinsexagintacent | |
| sesexagintacent | |
| septensexagintacent | |
| octosexagintacent | |
| novensexagintacent | |
| septuagintacent | |
| unseptuagintacent | |
| duoseptuagintacent | |
| treseptuagintacent | |
| quattuorseptuagintacent | |
| quinseptuagintacent | |
| seseptuagintacent | |
| septenseptuagintacent | |
| octoseptuagintacent | |
| novenseptuagintacent | |
| octogintacent | |
| unoctogintacent | |
| duooctogintacent | |
| tresoctogintacent | |
| quattuoroctogintacent | |
| quinoctogintacent | |
| sexoctogintacent | |
| septemoctogintacent | |
| octooctogintacent | |
| novemoctogintacent | |
| nonagintacent | |
| unnonagintacent | |
| duononagintacent | |
| trenonagintacent | |
| quattuornonagintacent | |
| quinnonagintacent | |
| senonagintacent | |
| septenonagintacent | |
| octononagintacent | |
| novenonagintacent | |
| ducent | |
| unducent | |
| duoducent | |
| treducent | |
| quattuorducent | |
| quinducent | |
| seducent | |
| septenducent | |
| octoducent | |
| novenducent | |
| deciducent | |
| undeciducent | |
| duodeciducent | |
| tredeciducent | |
| quattuordeciducent | |
| quindeciducent | |
| sedeciducent | |
| septendeciducent | |
| octodeciducent | |
| novendeciducent | |
| vigintiducent | |
| unvigintiducent | |
| duovigintiducent | |
| tresvigintiducent | |
| quattuorvigintiducent | |
| quinvigintiducent | |
| sesvigintiducent | |
| septemvigintiducent | |
| octovigintiducent | |
| novemvigintiducent | |
| trigintaducent | |
| untrigintaducent | |
| duotrigintaducent | |
| trestrigintaducent | |
| quattuortrigintaducent | |
| quintrigintaducent | |
| sestrigintaducent | |
| septentrigintaducent | |
| octotrigintaducent | |
| noventrigintaducent | |
| quadragintaducent | |
| unquadragintaducent | |
| duoquadragintaducent | |
| tresquadragintaducent | |
| quattuorquadragintaducent | |
| quinquadragintaducent | |
| sesquadragintaducent | |
| septenquadragintaducent | |
| octoquadragintaducent | |
| novenquadragintaducent | |
| quinquagintaducent | |
| unquinquagintaducent | |
| duoquinquagintaducent | |
| tresquinquagintaducent | |
| quattuorquinquagintaducent | |
| quinquinquagintaducent | |
| sesquinquagintaducent | |
| septenquinquagintaducent | |
| octoquinquagintaducent | |
| novenquinquagintaducent | |
| sexagintaducent | |
| unsexagintaducent | |
| duosexagintaducent | |
| tresexagintaducent | |
| quattuorsexagintaducent | |
| quinsexagintaducent | |
| sesexagintaducent | |
| septensexagintaducent | |
| octosexagintaducent | |
| novensexagintaducent | |
| septuagintaducent | |
| unseptuagintaducent | |
| duoseptuagintaducent | |
| treseptuagintaducent | |
| quattuorseptuagintaducent | |
| quinseptuagintaducent | |
| seseptuagintaducent | |
| septenseptuagintaducent | |
| octoseptuagintaducent | |
| novenseptuagintaducent | |
| octogintaducent | |
| unoctogintaducent | |
| duooctogintaducent | |
| tresoctogintaducent | |
| quattuoroctogintaducent | |
| quinoctogintaducent | |
| sexoctogintaducent | |
| septemoctogintaducent | |
| octooctogintaducent | |
| novemoctogintaducent | |
| nonagintaducent | |
| unnonagintaducent | |
| duononagintaducent | |
| trenonagintaducent | |
| quattuornonagintaducent | |
| quinnonagintaducent | |
| senonagintaducent | |
| septenonagintaducent | |
| octononagintaducent | |
| novenonagintaducent | |
| trecent | |
| untrecent | |
| duotrecent | |
| trestrecent | |
| quattuortrecent | |
| quintrecent | |
| sestrecent | |
| septentrecent | |
| octotrecent | |
| noventrecent | |
| decitrecent | |
| undecitrecent | |
| duodecitrecent | |
| tredecitrecent | |
| quattuordecitrecent | |
| quindecitrecent | |
| sedecitrecent | |
| septendecitrecent | |
| octodecitrecent | |
| novendecitrecent | |
| vigintitrecent | |
| unvigintitrecent | |
| duovigintitrecent | |
| tresvigintitrecent | |
| quattuorvigintitrecent | |
| quinvigintitrecent | |
| sesvigintitrecent | |
| septemvigintitrecent | |
| octovigintitrecent | |
| novemvigintitrecent | |
| trigintatrecent | |
| untrigintatrecent | |
| duotrigintatrecent | |
| trestrigintatrecent | |
| quattuortrigintatrecent | |
| quintrigintatrecent | |
| sestrigintatrecent | |
| septentrigintatrecent | |
| octotrigintatrecent | |
| noventrigintatrecent | |
| quadragintatrecent | |
| unquadragintatrecent | |
| duoquadragintatrecent | |
| tresquadragintatrecent | |
| quattuorquadragintatrecent | |
| quinquadragintatrecent | |
| sesquadragintatrecent | |
| septenquadragintatrecent | |
| octoquadragintatrecent | |
| novenquadragintatrecent | |
| quinquagintatrecent | |
| unquinquagintatrecent | |
| duoquinquagintatrecent | |
| tresquinquagintatrecent | |
| quattuorquinquagintatrecent | |
| quinquinquagintatrecent | |
| sesquinquagintatrecent | |
| septenquinquagintatrecent | |
| octoquinquagintatrecent | |
| novenquinquagintatrecent | |
| sexagintatrecent | |
| unsexagintatrecent | |
| duosexagintatrecent | |
| tresexagintatrecent | |
| quattuorsexagintatrecent | |
| quinsexagintatrecent | |
| sesexagintatrecent | |
| septensexagintatrecent | |
| octosexagintatrecent | |
| novensexagintatrecent | |
| septuagintatrecent | |
| unseptuagintatrecent | |
| duoseptuagintatrecent | |
| treseptuagintatrecent | |
| quattuorseptuagintatrecent | |
| quinseptuagintatrecent | |
| seseptuagintatrecent | |
| septenseptuagintatrecent | |
| octoseptuagintatrecent | |
| novenseptuagintatrecent | |
| octogintatrecent | |
| unoctogintatrecent | |
| duooctogintatrecent | |
| tresoctogintatrecent | |
| quattuoroctogintatrecent | |
| quinoctogintatrecent | |
| sexoctogintatrecent | |
| septemoctogintatrecent | |
| octooctogintatrecent | |
| novemoctogintatrecent | |
| nonagintatrecent | |
| unnonagintatrecent | |
| duononagintatrecent | |
| trenonagintatrecent | |
| quattuornonagintatrecent | |
| quinnonagintatrecent | |
| senonagintatrecent | |
| septenonagintatrecent | |
| octononagintatrecent | |
| novenonagintatrecent | |
| quadringent | |
| unquadringent | |
| duoquadringent | |
| tresquadringent | |
| quattuorquadringent | |
| quinquadringent | |
| sesquadringent | |
| septenquadringent | |
| octoquadringent | |
| novenquadringent | |
| deciquadringent | |
| undeciquadringent | |
| duodeciquadringent | |
| tredeciquadringent | |
| quattuordeciquadringent | |
| quindeciquadringent | |
| sedeciquadringent | |
| septendeciquadringent | |
| octodeciquadringent | |
| novendeciquadringent | |
| vigintiquadringent | |
| unvigintiquadringent | |
| duovigintiquadringent | |
| tresvigintiquadringent | |
| quattuorvigintiquadringent | |
| quinvigintiquadringent | |
| sesvigintiquadringent | |
| septemvigintiquadringent | |
| octovigintiquadringent | |
| novemvigintiquadringent | |
| trigintaquadringent | |
| untrigintaquadringent | |
| duotrigintaquadringent | |
| trestrigintaquadringent | |
| quattuortrigintaquadringent | |
| quintrigintaquadringent | |
| sestrigintaquadringent | |
| septentrigintaquadringent | |
| octotrigintaquadringent | |
| noventrigintaquadringent | |
| quadragintaquadringent | |
| unquadragintaquadringent | |
| duoquadragintaquadringent | |
| tresquadragintaquadringent | |
| quattuorquadragintaquadringent | |
| quinquadragintaquadringent | |
| sesquadragintaquadringent | |
| septenquadragintaquadringent | |
| octoquadragintaquadringent | |
| novenquadragintaquadringent | |
| quinquagintaquadringent | |
| unquinquagintaquadringent | |
| duoquinquagintaquadringent | |
| tresquinquagintaquadringent | |
| quattuorquinquagintaquadringent | |
| quinquinquagintaquadringent | |
| sesquinquagintaquadringent | |
| septenquinquagintaquadringent | |
| octoquinquagintaquadringent | |
| novenquinquagintaquadringent | |
| sexagintaquadringent | |
| unsexagintaquadringent | |
| duosexagintaquadringent | |
| tresexagintaquadringent | |
| quattuorsexagintaquadringent | |
| quinsexagintaquadringent | |
| sesexagintaquadringent | |
| septensexagintaquadringent | |
| octosexagintaquadringent | |
| novensexagintaquadringent | |
| septuagintaquadringent | |
| unseptuagintaquadringent | |
| duoseptuagintaquadringent | |
| treseptuagintaquadringent | |
| quattuorseptuagintaquadringent | |
| quinseptuagintaquadringent | |
| seseptuagintaquadringent | |
| septenseptuagintaquadringent | |
| octoseptuagintaquadringent | |
| novenseptuagintaquadringent | |
| octogintaquadringent | |
| unoctogintaquadringent | |
| duooctogintaquadringent | |
| tresoctogintaquadringent | |
| quattuoroctogintaquadringent | |
| quinoctogintaquadringent | |
| sexoctogintaquadringent | |
| septemoctogintaquadringent | |
| octooctogintaquadringent | |
| novemoctogintaquadringent | |
| nonagintaquadringent | |
| unnonagintaquadringent | |
| duononagintaquadringent | |
| trenonagintaquadringent | |
| quattuornonagintaquadringent | |
| quinnonagintaquadringent | |
| senonagintaquadringent | |
| septenonagintaquadringent | |
| octononagintaquadringent | |
| novenonagintaquadringent | |
| quingent | |
| unquingent | |
| duoquingent | |
| tresquingent | |
| quattuorquingent | |
| quinquingent | |
| sesquingent | |
| septenquingent | |
| octoquingent | |
| novenquingent | |
| deciquingent | |
| undeciquingent | |
| duodeciquingent | |
| tredeciquingent | |
| quattuordeciquingent | |
| quindeciquingent | |
| sedeciquingent | |
| septendeciquingent | |
| octodeciquingent | |
| novendeciquingent | |
| vigintiquingent | |
| unvigintiquingent | |
| duovigintiquingent | |
| tresvigintiquingent | |
| quattuorvigintiquingent | |
| quinvigintiquingent | |
| sesvigintiquingent | |
| septemvigintiquingent | |
| octovigintiquingent | |
| novemvigintiquingent | |
| trigintaquingent | |
| untrigintaquingent | |
| duotrigintaquingent | |
| trestrigintaquingent | |
| quattuortrigintaquingent | |
| quintrigintaquingent | |
| sestrigintaquingent | |
| septentrigintaquingent | |
| octotrigintaquingent | |
| noventrigintaquingent | |
| quadragintaquingent | |
| unquadragintaquingent | |
| duoquadragintaquingent | |
| tresquadragintaquingent | |
| quattuorquadragintaquingent | |
| quinquadragintaquingent | |
| sesquadragintaquingent | |
| septenquadragintaquingent | |
| octoquadragintaquingent | |
| novenquadragintaquingent | |
| quinquagintaquingent | |
| unquinquagintaquingent | |
| duoquinquagintaquingent | |
| tresquinquagintaquingent | |
| quattuorquinquagintaquingent | |
| quinquinquagintaquingent | |
| sesquinquagintaquingent | |
| septenquinquagintaquingent | |
| octoquinquagintaquingent | |
| novenquinquagintaquingent | |
| sexagintaquingent | |
| unsexagintaquingent | |
| duosexagintaquingent | |
| tresexagintaquingent | |
| quattuorsexagintaquingent | |
| quinsexagintaquingent | |
| sesexagintaquingent | |
| septensexagintaquingent | |
| octosexagintaquingent | |
| novensexagintaquingent | |
| septuagintaquingent | |
| unseptuagintaquingent | |
| duoseptuagintaquingent | |
| treseptuagintaquingent | |
| quattuorseptuagintaquingent | |
| quinseptuagintaquingent | |
| seseptuagintaquingent | |
| septenseptuagintaquingent | |
| octoseptuagintaquingent | |
| novenseptuagintaquingent | |
| octogintaquingent | |
| unoctogintaquingent | |
| duooctogintaquingent | |
| tresoctogintaquingent | |
| quattuoroctogintaquingent | |
| quinoctogintaquingent | |
| sexoctogintaquingent | |
| septemoctogintaquingent | |
| octooctogintaquingent | |
| novemoctogintaquingent | |
| nonagintaquingent | |
| unnonagintaquingent | |
| duononagintaquingent | |
| trenonagintaquingent | |
| quattuornonagintaquingent | |
| quinnonagintaquingent | |
| senonagintaquingent | |
| septenonagintaquingent | |
| octononagintaquingent | |
| novenonagintaquingent | |
| sescent | |
| unsescent | |
| duosescent | |
| tresescent | |
| quattuorsescent | |
| quinsescent | |
| sesescent | |
| septensescent | |
| octosescent | |
| novensescent | |
| decisescent | |
| undecisescent | |
| duodecisescent | |
| tredecisescent | |
| quattuordecisescent | |
| quindecisescent | |
| sedecisescent | |
| septendecisescent | |
| octodecisescent | |
| novendecisescent | |
| vigintisescent | |
| unvigintisescent | |
| duovigintisescent | |
| tresvigintisescent | |
| quattuorvigintisescent | |
| quinvigintisescent | |
| sesvigintisescent | |
| septemvigintisescent | |
| octovigintisescent | |
| novemvigintisescent | |
| trigintasescent | |
| untrigintasescent | |
| duotrigintasescent | |
| trestrigintasescent | |
| quattuortrigintasescent | |
| quintrigintasescent | |
| sestrigintasescent | |
| septentrigintasescent | |
| octotrigintasescent | |
| noventrigintasescent | |
| quadragintasescent | |
| unquadragintasescent | |
| duoquadragintasescent | |
| tresquadragintasescent | |
| quattuorquadragintasescent | |
| quinquadragintasescent | |
| sesquadragintasescent | |
| septenquadragintasescent | |
| octoquadragintasescent | |
| novenquadragintasescent | |
| quinquagintasescent | |
| unquinquagintasescent | |
| duoquinquagintasescent | |
| tresquinquagintasescent | |
| quattuorquinquagintasescent | |
| quinquinquagintasescent | |
| sesquinquagintasescent | |
| septenquinquagintasescent | |
| octoquinquagintasescent | |
| novenquinquagintasescent | |
| sexagintasescent | |
| unsexagintasescent | |
| duosexagintasescent | |
| tresexagintasescent | |
| quattuorsexagintasescent | |
| quinsexagintasescent | |
| sesexagintasescent | |
| septensexagintasescent | |
| octosexagintasescent | |
| novensexagintasescent | |
| septuagintasescent | |
| unseptuagintasescent | |
| duoseptuagintasescent | |
| treseptuagintasescent | |
| quattuorseptuagintasescent | |
| quinseptuagintasescent | |
| seseptuagintasescent | |
| septenseptuagintasescent | |
| octoseptuagintasescent | |
| novenseptuagintasescent | |
| octogintasescent | |
| unoctogintasescent | |
| duooctogintasescent | |
| tresoctogintasescent | |
| quattuoroctogintasescent | |
| quinoctogintasescent | |
| sexoctogintasescent | |
| septemoctogintasescent | |
| octooctogintasescent | |
| novemoctogintasescent | |
| nonagintasescent | |
| unnonagintasescent | |
| duononagintasescent | |
| trenonagintasescent | |
| quattuornonagintasescent | |
| quinnonagintasescent | |
| senonagintasescent | |
| septenonagintasescent | |
| octononagintasescent | |
| novenonagintasescent | |
| septingent | |
| unseptingent | |
| duoseptingent | |
| treseptingent | |
| quattuorseptingent | |
| quinseptingent | |
| seseptingent | |
| septenseptingent | |
| octoseptingent | |
| novenseptingent | |
| deciseptingent | |
| undeciseptingent | |
| duodeciseptingent | |
| tredeciseptingent | |
| quattuordeciseptingent | |
| quindeciseptingent | |
| sedeciseptingent | |
| septendeciseptingent | |
| octodeciseptingent | |
| novendeciseptingent | |
| vigintiseptingent | |
| unvigintiseptingent | |
| duovigintiseptingent | |
| tresvigintiseptingent | |
| quattuorvigintiseptingent | |
| quinvigintiseptingent | |
| sesvigintiseptingent | |
| septemvigintiseptingent | |
| octovigintiseptingent | |
| novemvigintiseptingent | |
| trigintaseptingent | |
| untrigintaseptingent | |
| duotrigintaseptingent | |
| trestrigintaseptingent | |
| quattuortrigintaseptingent | |
| quintrigintaseptingent | |
| sestrigintaseptingent | |
| septentrigintaseptingent | |
| octotrigintaseptingent | |
| noventrigintaseptingent | |
| quadragintaseptingent | |
| unquadragintaseptingent | |
| duoquadragintaseptingent | |
| tresquadragintaseptingent | |
| quattuorquadragintaseptingent | |
| quinquadragintaseptingent | |
| sesquadragintaseptingent | |
| septenquadragintaseptingent | |
| octoquadragintaseptingent | |
| novenquadragintaseptingent | |
| quinquagintaseptingent | |
| unquinquagintaseptingent | |
| duoquinquagintaseptingent | |
| tresquinquagintaseptingent | |
| quattuorquinquagintaseptingent | |
| quinquinquagintaseptingent | |
| sesquinquagintaseptingent | |
| septenquinquagintaseptingent | |
| octoquinquagintaseptingent | |
| novenquinquagintaseptingent | |
| sexagintaseptingent | |
| unsexagintaseptingent | |
| duosexagintaseptingent | |
| tresexagintaseptingent | |
| quattuorsexagintaseptingent | |
| quinsexagintaseptingent | |
| sesexagintaseptingent | |
| septensexagintaseptingent | |
| octosexagintaseptingent | |
| novensexagintaseptingent | |
| septuagintaseptingent | |
| unseptuagintaseptingent | |
| duoseptuagintaseptingent | |
| treseptuagintaseptingent | |
| quattuorseptuagintaseptingent | |
| quinseptuagintaseptingent | |
| seseptuagintaseptingent | |
| septenseptuagintaseptingent | |
| octoseptuagintaseptingent | |
| novenseptuagintaseptingent | |
| octogintaseptingent | |
| unoctogintaseptingent | |
| duooctogintaseptingent | |
| tresoctogintaseptingent | |
| quattuoroctogintaseptingent | |
| quinoctogintaseptingent | |
| sexoctogintaseptingent | |
| septemoctogintaseptingent | |
| octooctogintaseptingent | |
| novemoctogintaseptingent | |
| nonagintaseptingent | |
| unnonagintaseptingent | |
| duononagintaseptingent | |
| trenonagintaseptingent | |
| quattuornonagintaseptingent | |
| quinnonagintaseptingent | |
| senonagintaseptingent | |
| septenonagintaseptingent | |
| octononagintaseptingent | |
| novenonagintaseptingent | |
| octingent | |
| unoctingent | |
| duooctingent | |
| tresoctingent | |
| quattuoroctingent | |
| quinoctingent | |
| sexoctingent | |
| septemoctingent | |
| octooctingent | |
| novemoctingent | |
| decioctingent | |
| undecioctingent | |
| duodecioctingent | |
| tredecioctingent | |
| quattuordecioctingent | |
| quindecioctingent | |
| sedecioctingent | |
| septendecioctingent | |
| octodecioctingent | |
| novendecioctingent | |
| vigintioctingent | |
| unvigintioctingent | |
| duovigintioctingent | |
| tresvigintioctingent | |
| quattuorvigintioctingent | |
| quinvigintioctingent | |
| sesvigintioctingent | |
| septemvigintioctingent | |
| octovigintioctingent | |
| novemvigintioctingent | |
| trigintaoctingent | |
| untrigintaoctingent | |
| duotrigintaoctingent | |
| trestrigintaoctingent | |
| quattuortrigintaoctingent | |
| quintrigintaoctingent | |
| sestrigintaoctingent | |
| septentrigintaoctingent | |
| octotrigintaoctingent | |
| noventrigintaoctingent | |
| quadragintaoctingent | |
| unquadragintaoctingent | |
| duoquadragintaoctingent | |
| tresquadragintaoctingent | |
| quattuorquadragintaoctingent | |
| quinquadragintaoctingent | |
| sesquadragintaoctingent | |
| septenquadragintaoctingent | |
| octoquadragintaoctingent | |
| novenquadragintaoctingent | |
| quinquagintaoctingent | |
| unquinquagintaoctingent | |
| duoquinquagintaoctingent | |
| tresquinquagintaoctingent | |
| quattuorquinquagintaoctingent | |
| quinquinquagintaoctingent | |
| sesquinquagintaoctingent | |
| septenquinquagintaoctingent | |
| octoquinquagintaoctingent | |
| novenquinquagintaoctingent | |
| sexagintaoctingent | |
| unsexagintaoctingent | |
| duosexagintaoctingent | |
| tresexagintaoctingent | |
| quattuorsexagintaoctingent | |
| quinsexagintaoctingent | |
| sesexagintaoctingent | |
| septensexagintaoctingent | |
| octosexagintaoctingent | |
| novensexagintaoctingent | |
| septuagintaoctingent | |
| unseptuagintaoctingent | |
| duoseptuagintaoctingent | |
| treseptuagintaoctingent | |
| quattuorseptuagintaoctingent | |
| quinseptuagintaoctingent | |
| seseptuagintaoctingent | |
| septenseptuagintaoctingent | |
| octoseptuagintaoctingent | |
| novenseptuagintaoctingent | |
| octogintaoctingent | |
| unoctogintaoctingent | |
| duooctogintaoctingent | |
| tresoctogintaoctingent | |
| quattuoroctogintaoctingent | |
| quinoctogintaoctingent | |
| sexoctogintaoctingent | |
| septemoctogintaoctingent | |
| octooctogintaoctingent | |
| novemoctogintaoctingent | |
| nonagintaoctingent | |
| unnonagintaoctingent | |
| duononagintaoctingent | |
| trenonagintaoctingent | |
| quattuornonagintaoctingent | |
| quinnonagintaoctingent | |
| senonagintaoctingent | |
| septenonagintaoctingent | |
| octononagintaoctingent | |
| novenonagintaoctingent | |
| nongent | |
| unnongent | |
| duonongent | |
| trenongent | |
| quattuornongent | |
| quinnongent | |
| senongent | |
| septenongent | |
| octonongent | |
| novenongent | |
| decinongent | |
| undecinongent | |
| duodecinongent | |
| tredecinongent | |
| quattuordecinongent | |
| quindecinongent | |
| sedecinongent | |
| septendecinongent | |
| octodecinongent | |
| novendecinongent | |
| vigintinongent | |
| unvigintinongent | |
| duovigintinongent | |
| tresvigintinongent | |
| quattuorvigintinongent | |
| quinvigintinongent | |
| sesvigintinongent | |
| septemvigintinongent | |
| octovigintinongent | |
| novemvigintinongent | |
| trigintanongent | |
| untrigintanongent | |
| duotrigintanongent | |
| trestrigintanongent | |
| quattuortrigintanongent | |
| quintrigintanongent | |
| sestrigintanongent | |
| septentrigintanongent | |
| octotrigintanongent | |
| noventrigintanongent | |
| quadragintanongent | |
| unquadragintanongent | |
| duoquadragintanongent | |
| tresquadragintanongent | |
| quattuorquadragintanongent | |
| quinquadragintanongent | |
| sesquadragintanongent | |
| septenquadragintanongent | |
| octoquadragintanongent | |
| novenquadragintanongent | |
| quinquagintanongent | |
| unquinquagintanongent | |
| duoquinquagintanongent | |
| tresquinquagintanongent | |
| quattuorquinquagintanongent | |
| quinquinquagintanongent | |
| sesquinquagintanongent | |
| septenquinquagintanongent | |
| octoquinquagintanongent | |
| novenquinquagintanongent | |
| sexagintanongent | |
| unsexagintanongent | |
| duosexagintanongent | |
| tresexagintanongent | |
| quattuorsexagintanongent | |
| quinsexagintanongent | |
| sesexagintanongent | |
| septensexagintanongent | |
| octosexagintanongent | |
| novensexagintanongent | |
| septuagintanongent | |
| unseptuagintanongent | |
| duoseptuagintanongent | |
| treseptuagintanongent | |
| quattuorseptuagintanongent | |
| quinseptuagintanongent | |
| seseptuagintanongent | |
| septenseptuagintanongent | |
| octoseptuagintanongent | |
| novenseptuagintanongent | |
| octogintanongent | |
| unoctogintanongent | |
| duooctogintanongent | |
| tresoctogintanongent | |
| quattuoroctogintanongent | |
| quinoctogintanongent | |
| sexoctogintanongent | |
| septemoctogintanongent | |
| octooctogintanongent | |
| novemoctogintanongent | |
| nonagintanongent | |
| unnonagintanongent | |
| duononagintanongent | |
| trenonagintanongent | |
| quattuornonagintanongent | |
| quinnonagintanongent | |
| senonagintanongent | |
| septenonagintanongent | |
| octononagintanongent | |
| novenonagintanongent | |
| millin | |
| millim | |
| millib | |
| millitr | |
| ] | |
| |> Enum.with_index | |
| |> Enum.map(fn({a,b})->{b+2,a} end) | |
| |> Enum.into %{} | |
| @limit map_size(@illion) | |
| @units ~w[zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen] | |
| |> Enum.with_index | |
| |> Enum.map(fn({a,b})->{b,a} end) | |
| |> Enum.into %{} | |
| @tens ~w[twenty thirty forty fifty sixty seventy eighty ninety] | |
| |> Enum.with_index | |
| |> Enum.map(fn({a,b})->{b+2,a} end) | |
| |> Enum.into %{} | |
| def read(n) when n<1000, do: _00(n) | |
| def read(n) do | |
| case split(n,0,[]) do | |
| []-> "To big to read!" | |
| parts -> | |
| #IO.puts "#{inspect parts}" | |
| parts | |
| |>Enum.map_join(" ",&_000(&1)) | |
| end | |
| end | |
| defp split(_,k,_) when k>@limit, do: [] | |
| defp split(n,k,parts) when n<1000, do: [{k,n}|parts] | |
| defp split(n,k,parts) when rem(n,1000) === 0, do: split(div(n,1000),k+1, parts) | |
| defp split(n,k,parts), do: split(div(n,1000),k+1,[{k,rem(n,1000)}|parts]) | |
| defp _000({0,n}) when n<100, do: "and " <> _00(n) | |
| defp _000({0,n}), do: _00(n) | |
| defp _000({1,n}), do: _00(n) <> " thousand" | |
| defp _000({k,n}), do: _00(n) <> " " <> @illion[k] <> "illion" | |
| defp _00(n) when n>=100 and rem(n,100) === 0, do: @units[div(n,100)] <> " hundred" | |
| defp _00(n) when n>=100, do: @units[div(n,100)] <> " hundred and " <> _00(rem(n,100)) | |
| defp _00(n) when n>=20 and rem(n,10) === 0, do: @tens[div(n,10)] | |
| defp _00(n) when n>=20, do: @tens[div(n,10)] <> " " <> @units[rem(n,10)] | |
| defp _00(n), do: @units[n] | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment