<p>After some thinking, I think I can confirm how it should. Let me self-plagiarize from <a href="https://codegolf.stackexchange.com/q/246530/89459">this post</a> on Code Golf SE, with respect to the updated phonology and orthography.</p>
<p>Though this conlang's numeral system is still essentially decimal, it expresses run-length encoding on zeros. (Thanks @Austin for suggestion)</p>
<p>The basic words for the nonzero digits are:</p>
<ul>
<li>1 = <strong>uma</strong></li>
<li>2 = <strong>piso</strong></li>
<li>3 = <strong>terra</strong></li>
<li>4 = <strong>qarte</strong></li>
<li>5 = <strong>pamta</strong></li>
<li>6 = <strong>soçi</strong></li>
<li>7 = <strong>sete</strong></li>
<li>8 = <strong>oto</strong></li>
<li>9 = <strong>mowe</strong></li>
</ul>
<p>Note that the vowels in these words are all positive. (Yep, now my conlang has vowel harmony.)</p>
<p>For every <em>positive</em> integer, with its decimal expansion, let <strong>d</strong> be the least significant nonzero digit.</p>
<ul>
<li><p>First, <strong>d</strong> shall be spelled out like above.</p>
</li>
<li><p>Second, if <strong>d</strong> has any trailing zeros, the <em>length</em> of the zeros shall be spelled out recursively, with the lastly spelled word having its vowels replaced by their negative counterpart (represented by circumflexes).</p>
</li>
<li><p>Third, if <strong>d</strong> was <em>not</em> the most significant digit, &quot;wa&quot; shall attach to the lastly spelled word as a suffix. And then <strong>d</strong> and its trailing zeros (if any) shall be stripped off, and the remaining digits shall be spelled out recursively.</p>
</li>
<li><p>All the words spelling out an integer shall be hyphenated.</p>
</li>
</ul>
<p>Examples:</p>
<ul>
<li>1 = uma</li>
<li>2 = piso</li>
<li>7 = sete</li>
<li>10 = uma-ûmâ</li>
<li>11 = umawa-uma</li>
<li>12 = pisowa-uma</li>
<li>19 = mowewa-uma</li>
<li>20 = piso-ûmâ</li>
<li>42 = pisowa-qarte</li>
<li>69 = mowewa-soçi</li>
<li>100 = uma-pîsô</li>
<li>109 = mowewa-uma-ûmâ</li>
<li>440 = qarte-ûmâwa-qarte</li>
<li>666 = soçiwa-soçiwa-soçi</li>
<li>1945 = pamtawa-qartewa-mowewa-uma</li>
<li>2000 = piso-têrrâ</li>
<li>2022 = pisowa-pisowa-piso-ûmâ</li>
<li>2080 = oto-ûmâwa-piso-ûmâ</li>
<li>44099 = mowewa-mowewa-qarte-ûmâwa-qarte</li>
<li>44100 = uma-pîsôwa-qartewa-qarte</li>
<li>10^60 (one novemdecillion) = uma-soçi-ûmâ</li>
<li>10^63 (one vigintillion) = uma-terrawa-sôçî</li>
<li>10^63 + 2 × 10^33 (one vigintillion two decillion) = piso-terrawa-têrrâwa-uma-mowewa-pîsô</li>
<li>10^100 (googol) = uma-uma-pîsô</li>
<li>10^(10^100) (googolplex) = uma-uma-uma-pîsô</li>
</ul>
<p>The asymptotic complexity of this numeral system has logarithmic upper bound. As for the lower bound, I haven't calculated it precisely, but it is at most <a href="https://en.wikipedia.org/wiki/Super-logarithm" rel="nofollow noreferrer">super-logarithmic</a>.</p>

CC BY-SA 4.0
2022-09-03T05:31:12.627Z
2022-09-03T05:45:20.047Z
2022-09-03T05:45:20.047Z
Dannyu NDos
<p>You could do what humans normally do when dealing with arbitrally long numbers - treat them as strings.<br />
We don't normally use values higher than milion in daily life - would you dictate a 10 digit phone number* as</p>
<p>&quot;Six bilions**, two hundred eighty three milions, one hundred eighty five thousands, three hundred seven&quot;<br />
Or as<br />
&quot;Six two eight three one eight five three zero seven&quot;?</p>
<p>They could be grouped in sets of three digits (the holy trinity), and if you really wanted, you could prepend each set with triad ordering number (or names of saints if going for religious vibes)</p>
<p>&quot;Six in 4th triad, two hundred eighty three in 3rd triad, one hundred eighty five in 2nd triad, three hundred seven in 1st triad&quot;.<br />
OR<br />
&quot;Six in name of Michael, two hundred eighty three in name of Joseph, one hundred eighty five in name of Lucas, three hundred seven in name of Adam&quot;.</p>
<p>* Please don't call it. Using a beginning of very important constant as example.<br />
** Definition of bilion gets finicky based where you are, here means 1000 Milions.</p>

CC BY-SA 4.0
2021-06-28T14:29:58.383Z
The number is τ (or 2π) for those curious
Alex Lamson
CC BY-SA 4.0
2021-06-28T17:26:21.083Z
@AlexLamson 01189998819991197253 would have been an even nerdier option :)
Crazymoomin
CC BY-SA 4.0
2021-07-10T18:14:29.927Z
One could also group by other digit counts, as the [Indian numbering system](https://en.wikipedia.org/wiki/Indian_numbering_system) does - a new name occurs every _two_ digits after the thousands - that is, 10^3, "thousand"; 10^5, "lakh"; 10^7, "crore"; 10^9, "arab"; 10^11, "kharab", etc.
Jeff Zeitlin
CC BY-SA 4.0
2021-06-28T11:19:39.267Z
2021-06-28T11:19:39.267Z
Thomas
<p>In the spirit of functional programming, you can add run length encoding.</p>
<p>Practically speaking, we see that there is no more effective of a method for naming numbers than giving them a sequence of digits.  This is exactly what we do in mathematics. 513843843246213513513813502162324713513541263 is simply best described as that series of digits.</p>
<p>So the issue is specifically that the people speaking your conlang come across cases with long strings of the same digit quite often (as we do).</p>
<p>The solution is to permit explicit run length encoding</p>
<p>The number 1000000 might be expressed as <code>1 (run 6 0)</code> a 1 followed by a run of 6 0s.  This would also solve the issue of repeat numbers in a number.  You might describe 16333333337 as <code>1 6 (run 8 3) 7</code></p>
<p>If I can venture a guess as to how your Haskel based language works, I am guessing <code>1 6 (run 8 3) 7</code> would be read as &quot;UnelSoxelConsRunelOkelTerSet,&quot; using &quot;Run&quot; as the phonem for this <code>run</code> operation, and inventing a new particle, &quot;Cons&quot; which starts a new cons list (you didn't mention this, but it strikes me as an essential particle for a Haskel based language.  Haskell gets its power from directed acyclic graphs, not just sequences)</p>
<p>Note that the named quantities like million and billion are useful.  They give us hints as to the rough size of the number before we hear every single digit.  But for explicitness, run length encoding works fine.  You might want to prefix large numbers with a number of digits as a hint.</p>
<p>For arbitrary large numbers, which may not run length encode well, a checksum may be in order.  A well chosen check-summing scheme may also allow for correction of errors in communication, not just detection.</p>

CC BY-SA 4.0
2021-06-29T00:19:34.767Z
2021-10-29T20:22:13.430Z
2021-10-29T20:22:13.430Z
Cort Ammon
<p>Both issues can be solved simultaneously.</p>
<p>Consider for a moment how you say 1 239 475 612 034 in English. It’s not (usually) said as:</p>
<blockquote>
<p>one two three nine four seven five six one two zero three four</p>
</blockquote>
<p>Instead, it’s read out as:</p>
<blockquote>
<p>one trillion two hundred thirty nine billion four hundred seventy five million six hundred twelve thousand and thirty four</p>
</blockquote>
<p>The ‘normal’ way to read it is much longer, but those extra words serve an important purpose, they provide information about where in the number you are, which in helps reduce errors (in information theory terms, they serve as a very limited form of in-band error correcting code).</p>
<p>The same feature of the language also makes powers of ten <em>very</em> compact.</p>
<p>For your language, you can go a step further, and make the names of the powers of ten composable. English does this to a limited degree for the tens and hundreds places (so, for example, you have ‘ten thousand’ and ‘one hundred million’), but there’s no reason that it needs to be limited to just a three-digit arrangement. The caveat is that I would expect digit grouping to match up with however wide this ends up betting before looping (so, for example, if you go with one million being the largest power of ten you have a special name for, I would expect the digit grouping in written form to separate digits into groups of 10).</p>

CC BY-SA 4.0
2021-12-22T20:27:58.853Z
That's an *integer*. Now, how do you say 1.239 475 612 034? No one says "1 decimal two hundred thirty-nine thousandths four hundred seventy-five millionths six hundred and twelve billionths and thirty four trillionths". It's "one decimal (string of digits)". When you give your credit card number over the phone to order something, do you say "one quadrillion, two hundred thirty-four trillion, five hundred sixty-seven billion, eight hundred ninety million, one hundred twenty-three thousand, four hundred fifty-six" or do you just say say "1234567890123456"?
Keith Morrison
CC BY-SA 4.0
2021-12-22T21:57:56.930Z
@KeithMorrison The OP only asks for integers, and my suggestion does not preclude alternative methods for decimals or reading off digits.
Austin Hemmelgarn
CC BY-SA 4.0
2021-06-28T12:42:51.420Z
2021-06-28T12:42:51.420Z
Austin Hemmelgarn
<p>For <em>precise</em> integers, I see no viable systematic alternative that covers them all up to arbitrary size. But often, you don't need precise integers with all digits specified, spelled out, and spoken. For <em>unprecise</em> integers you can design some spoken form of exponent notation (like 1.0E9 in some programming language notation).</p>

CC BY-SA 4.0
2021-06-28T09:10:52.907Z
2021-06-28T09:10:52.907Z
Sir Cornflakes
<p>If -el &quot;applies&quot;, I'm not sure about using it between digits. By that logic, <code>KarelBis</code> would be <code>4</code> applied to <code>2</code>, so <code>2^4</code>. Going that route, and assuming base 10 is the more common counting system in your world, you would need a word for <code>10</code>, eg. <code>Dix</code> (from French). So <code>1001</code> would be <code>DixelDixelDixUn</code>: <code>10 * 10 * 10 + 1</code>. Or these moderators could use prime numbers (important in cryptography) to communicate among themselves. If -el is the concatenator for powers, and let's say -id is the concatenator for multiplication (and no concatenator for addition), then <code>4837560</code> would be <strong><code>TerelBisidTeridPanidSetidDixTeridKaridDixelDixKaridDixTer</code></strong>. That is, <code>2^3 x 3^1 x 5^1 x 7^1 x 13^1 x 443^1</code> with <code>443 = 4 * 10 * 10+4 * 10+3</code>, though I don't see a way to put that in parenthesis. Harder than spelling out the digits!</p>

CC BY-SA 4.0
2021-06-28T12:10:25.137Z
2021-06-28T12:15:40.047Z
2021-06-28T12:15:40.047Z
n49o7
<p>You can have some fun with this.</p>
<p>If the moderators resemble humans and are not good at repeating identical strings an exact number of times, then you can use something like <a href="https://en.wikipedia.org/wiki/Hebrew_numerals" rel="nofollow noreferrer">Hebrew numerals</a> or <a href="https://en.wikipedia.org/wiki/Greek_numerals" rel="nofollow noreferrer">Greek numerals</a> but with short syllables. The idea being that you effectively have multiple series of digits that cover different place value positions. Combining this idea with a simple collection of syllables that run in some order will give you a number system that's pronounceable but lets you skip zeroes when the gaps can be determined from context.</p>
<p>One problem with a system like this is that it takes up a lot of <em>space</em>. Either many numbers will be homophones with non-numbers or the numbers will be occupying some very important real estate and the rest of the language will have to adapt.</p>

CC BY-SA 4.0
2021-07-01T03:52:35.523Z
2021-07-01T03:52:35.523Z
Greg Nisbet
<p>Whilst worldbuilding, I decided to make a conlang. It's named <strong>Leksah</strong>.</p>
<p>Leksah is heavily influenced by the programming language Haskell. As such, Leksah has only 3 parts of speech:</p>
<ul>
<li><p><strong>Literals</strong>, which usually correspond to nouns. These are always written titlecased. (Yep, like German!)</p>
</li>
<li><p><strong>Functions</strong>, which usually correspond to verbs.</p>
</li>
<li><p><em>The</em> particle &quot;<strong>-el</strong>&quot;, which applies a function.</p>
</li>
</ul>
<p>As such, Leksah has word order <strong>VSO</strong>.</p>
<p>Yet there is a special kind of literals: <strong>Numerals</strong>. There are infinite number of integers, and I cannot make every single new word for every integer.</p>
<p>Furthermore, it seems no natural languages can spell every integers. The maximum units are &quot;vigintillion&quot; for English, &quot;무량대수&quot;(無量大數) for (Sino-)Korean and so on.</p>
<p>That said, let me introduce some aspects of my world. The main residents of my world are angels (dubbed <strong>moderators</strong> in my world), and some of those whose &quot;duties&quot; are related to math (cryptologists in particular?) has obligations involving huge numbers. That's why my conlang must enable such numbers to be said.</p>
<p>So here's a sketch of how numerals would be dealt. Integers shall be written and said in decimal. Here's how digits are said:</p>
<ul>
<li><p>0 = &quot;Nad&quot; (from <strong>NAD</strong>AZERO)</p>
</li>
<li><p>1 = &quot;Un&quot; (from <strong>UN</strong>AONE)</p>
</li>
<li><p>2 = &quot;Bis&quot; (from <strong>BIS</strong>SOTWO)</p>
</li>
<li><p>3 = &quot;Ter&quot; (from <strong>TER</strong>RATHREE)</p>
</li>
<li><p>4 = &quot;Kar&quot; (from <strong>KAR</strong>TEFOUR)</p>
</li>
<li><p>5 = &quot;Pan&quot; (from <strong>PAN</strong>TAFIVE)</p>
</li>
<li><p>6 = &quot;Sox&quot; (from <strong>SOX</strong>ISIX)</p>
</li>
<li><p>7 = &quot;Set&quot; (from <strong>SET</strong>TESEVEN)</p>
</li>
<li><p>8 = &quot;Ok&quot; (from <strong>OK</strong>TOEIGHT)</p>
</li>
<li><p>9 = &quot;Nov&quot; (from <strong>NOV</strong>ENINE)</p>
</li>
</ul>
<p>Though these are literals, as an exception, they can be applied by &quot;-el&quot;. In this context, it concatenates digits to make bigger numbers:</p>
<ul>
<li><p>42 = &quot;KarelBis&quot;</p>
</li>
<li><p>108 = &quot;UnelNadelOk&quot;</p>
</li>
<li><p>65535 = &quot;SoxelPanelPanelTerelPan&quot;</p>
</li>
</ul>
<p>Note that the spellings are camelcased.</p>
<p>Yet I think there are some disadvantages compared to natural languages:</p>
<ul>
<li><p>This scheme wastes time when saying a power of 10. &quot;10000&quot; is spelled &quot;UnelNadelNadelNadelNad&quot;.</p>
</li>
<li><p>This scheme is very prone for a listener to accidentally omit or duplicate a digit, especially when the same digit is repeated.</p>
</li>
</ul>
<p>How should I modify this scheme to avoid such situations? Is there any conlang can say arbitrarily large integers?</p>

CC BY-SA 4.0
2021-06-28T14:45:36.363Z
"Is there any conlang can say arbitrarily large integers?" - not a conlang, but an constructed extension to the English convention allows this - https://en.wikipedia.org/wiki/Names_of_large_numbers#Extensions_of_the_standard_dictionary_numbers
Neil Tarrant
CC BY-SA 4.0
2021-06-28T14:50:11.070Z
and to frame challenge your question, perhaps the moderators are mathematically  perfect beings: they will never make mistakes when speaking a number; and unlike humans find no special significance in the powers of ten; that is to say they would find 4 294 967 296 (i.e 2^32) to be at least as interesting and important as 1 000 000 000, and so have no need for special words for powers of ten.
Neil Tarrant
CC BY-SA 4.0
2021-11-02T13:23:32.550Z
Not an answer, as this covers bases, but possibly helpful: https://googology.wikia.org/wiki/Misalian_base-naming_system
AncientSwordRage
<conlang-creation><numerals>
How should my conlang enable arbitrarily large integers to be said?
# How should my conlang enable arbitrarily large integers to be said?

(Asked by: username_0 on 2021-06-28)

Whilst worldbuilding, I decided to make a conlang. It's named **Leksah**.

Leksah is heavily influenced by the programming language Haskell. As such, Leksah has only 3 parts of speech:

* **Literals**, which usually correspond to nouns. These are always written titlecased. (Yep, like German!)
* **Functions**, which usually correspond to verbs.
* *The* particle "**-el**", which applies a function.

As such, Leksah has word order **VSO**.

Yet there is a special kind of literals: **Numerals**. There are infinite number of integers, and I cannot make every single new word for every integer.

Furthermore, it seems no natural languages can spell every integers. The maximum units are "vigintillion" for English, "무량대수"(無量大數) for (Sino-)Korean and so on.

That said, let me introduce some aspects of my world. The main residents of my world are angels (dubbed **moderators** in my world), and some of those whose "duties" are related to math (cryptologists in particular?) has obligations involving huge numbers. That's why my conlang must enable such numbers to be said.

So here's a sketch of how numerals would be dealt. Integers shall be written and said in decimal. Here's how digits are said:

* 0 = "Nad" (from **NAD**AZERO)
* 1 = "Un" (from **UN**AONE)
* 2 = "Bis" (from **BIS**SOTWO)
* 3 = "Ter" (from **TER**RATHREE)
* 4 = "Kar" (from **KAR**TEFOUR)
* 5 = "Pan" (from **PAN**TAFIVE)
* 6 = "Sox" (from **SOX**ISIX)
* 7 = "Set" (from **SET**TESEVEN)
* 8 = "Ok" (from **OK**TOEIGHT)
* 9 = "Nov" (from **NOV**ENINE)

Though these are literals, as an exception, they can be applied by "-el". In this context, it concatenates digits to make bigger numbers:

* 42 = "KarelBis"
* 108 = "UnelNadelOk"
* 65535 = "SoxelPanelPanelTerelPan"

Note that the spellings are camelcased.

Yet I think there are some disadvantages compared to natural languages:

* This scheme wastes time when saying a power of 10. "10000" is spelled "UnelNadelNadelNadelNad".
* This scheme is very prone for a listener to accidentally omit or duplicate a digit, especially when the same digit is repeated.

How should I modify this scheme to avoid such situations? Is there any conlang can say arbitrarily large integers?

**Tags:** conlang-creation, numerals
> **Comments:**
> **username_1**: "Is there any conlang can say arbitrarily large integers?" - not a conlang, but an constructed extension to the English convention allows this - https://en.wikipedia.org/wiki/Names_of_large_numbers#Extensions_of_the_standard_dictionary_numbers  
> **username_1**: and to frame challenge your question, perhaps the moderators are mathematically  perfect beings: they will never make mistakes when speaking a number; and unlike humans find no special significance in the powers of ten; that is to say they would find 4 294 967 296 (i.e 2^32) to be at least as interesting and important as 1 000 000 000, and so have no need for special words for powers of ten.  
> **username_2**: Not an answer, as this covers bases, but possibly helpful: https://googology.wikia.org/wiki/Misalian_base-naming_system  

---

## 7 answers

### Answer by username_0 on 2022-09-03. Score: 1 | Accepted answer

After some thinking, I think I can confirm how it should. Let me self-plagiarize from [this post](https://codegolf.stackexchange.com/q/246530/89459) on Code Golf SE, with respect to the updated phonology and orthography.

Though this conlang's numeral system is still essentially decimal, it expresses run-length encoding on zeros. (Thanks @Austin for suggestion)

The basic words for the nonzero digits are:

* 1 = **uma**
* 2 = **piso**
* 3 = **terra**
* 4 = **qarte**
* 5 = **pamta**
* 6 = **soçi**
* 7 = **sete**
* 8 = **oto**
* 9 = **mowe**

Note that the vowels in these words are all positive. (Yep, now my conlang has vowel harmony.)

For every *positive* integer, with its decimal expansion, let **d** be the least significant nonzero digit.

* First, **d** shall be spelled out like above.
* Second, if **d** has any trailing zeros, the *length* of the zeros shall be spelled out recursively, with the lastly spelled word having its vowels replaced by their negative counterpart (represented by circumflexes).
* Third, if **d** was *not* the most significant digit, "wa" shall attach to the lastly spelled word as a suffix. And then **d** and its trailing zeros (if any) shall be stripped off, and the remaining digits shall be spelled out recursively.
* All the words spelling out an integer shall be hyphenated.

Examples:

* 1 = uma
* 2 = piso
* 7 = sete
* 10 = uma-ûmâ
* 11 = umawa-uma
* 12 = pisowa-uma
* 19 = mowewa-uma
* 20 = piso-ûmâ
* 42 = pisowa-qarte
* 69 = mowewa-soçi
* 100 = uma-pîsô
* 109 = mowewa-uma-ûmâ
* 440 = qarte-ûmâwa-qarte
* 666 = soçiwa-soçiwa-soçi
* 1945 = pamtawa-qartewa-mowewa-uma
* 2000 = piso-têrrâ
* 2022 = pisowa-pisowa-piso-ûmâ
* 2080 = oto-ûmâwa-piso-ûmâ
* 44099 = mowewa-mowewa-qarte-ûmâwa-qarte
* 44100 = uma-pîsôwa-qartewa-qarte
* 10^60 (one novemdecillion) = uma-soçi-ûmâ
* 10^63 (one vigintillion) = uma-terrawa-sôçî
* 10^63 + 2 × 10^33 (one vigintillion two decillion) = piso-terrawa-têrrâwa-uma-mowewa-pîsô
* 10^100 (googol) = uma-uma-pîsô
* 10^(10^100) (googolplex) = uma-uma-uma-pîsô

The asymptotic complexity of this numeral system has logarithmic upper bound. As for the lower bound, I haven't calculated it precisely, but it is at most [super-logarithmic](https://en.wikipedia.org/wiki/Super-logarithm).


---

### Answer by username_3 on 2021-06-28. Score: 8

You could do what humans normally do when dealing with arbitrally long numbers - treat them as strings.  
We don't normally use values higher than milion in daily life - would you dictate a 10 digit phone number\* as

"Six bilions\*\*, two hundred eighty three milions, one hundred eighty five thousands, three hundred seven"  
Or as  
"Six two eight three one eight five three zero seven"?

They could be grouped in sets of three digits (the holy trinity), and if you really wanted, you could prepend each set with triad ordering number (or names of saints if going for religious vibes)

"Six in 4th triad, two hundred eighty three in 3rd triad, one hundred eighty five in 2nd triad, three hundred seven in 1st triad".  
OR  
"Six in name of Michael, two hundred eighty three in name of Joseph, one hundred eighty five in name of Lucas, three hundred seven in name of Adam".

\* Please don't call it. Using a beginning of very important constant as example.  
\*\* Definition of bilion gets finicky based where you are, here means 1000 Milions.

> **Comments:**
> **username_4**: The number is τ (or 2π) for those curious  
> **username_5**: @AlexLamson 01189998819991197253 would have been an even nerdier option :)  
> **username_6**: One could also group by other digit counts, as the [Indian numbering system](https://en.wikipedia.org/wiki/Indian_numbering_system) does - a new name occurs every _two_ digits after the thousands - that is, 10^3, "thousand"; 10^5, "lakh"; 10^7, "crore"; 10^9, "arab"; 10^11, "kharab", etc.  

---

### Answer by username_7 on 2021-06-29. Score: 8

In the spirit of functional programming, you can add run length encoding.

Practically speaking, we see that there is no more effective of a method for naming numbers than giving them a sequence of digits. This is exactly what we do in mathematics. 513843843246213513513813502162324713513541263 is simply best described as that series of digits.

So the issue is specifically that the people speaking your conlang come across cases with long strings of the same digit quite often (as we do).

The solution is to permit explicit run length encoding

The number 1000000 might be expressed as `1 (run 6 0)` a 1 followed by a run of 6 0s. This would also solve the issue of repeat numbers in a number. You might describe 16333333337 as `1 6 (run 8 3) 7`

If I can venture a guess as to how your Haskel based language works, I am guessing `1 6 (run 8 3) 7` would be read as "UnelSoxelConsRunelOkelTerSet," using "Run" as the phonem for this `run` operation, and inventing a new particle, "Cons" which starts a new cons list (you didn't mention this, but it strikes me as an essential particle for a Haskel based language. Haskell gets its power from directed acyclic graphs, not just sequences)

Note that the named quantities like million and billion are useful. They give us hints as to the rough size of the number before we hear every single digit. But for explicitness, run length encoding works fine. You might want to prefix large numbers with a number of digits as a hint.

For arbitrary large numbers, which may not run length encode well, a checksum may be in order. A well chosen check-summing scheme may also allow for correction of errors in communication, not just detection.


---

### Answer by username_8 on 2021-06-28. Score: 7

Both issues can be solved simultaneously.

Consider for a moment how you say 1 239 475 612 034 in English. It’s not (usually) said as:

> one two three nine four seven five six one two zero three four

Instead, it’s read out as:

> one trillion two hundred thirty nine billion four hundred seventy five million six hundred twelve thousand and thirty four

The ‘normal’ way to read it is much longer, but those extra words serve an important purpose, they provide information about where in the number you are, which in helps reduce errors (in information theory terms, they serve as a very limited form of in-band error correcting code).

The same feature of the language also makes powers of ten *very* compact.

For your language, you can go a step further, and make the names of the powers of ten composable. English does this to a limited degree for the tens and hundreds places (so, for example, you have ‘ten thousand’ and ‘one hundred million’), but there’s no reason that it needs to be limited to just a three-digit arrangement. The caveat is that I would expect digit grouping to match up with however wide this ends up betting before looping (so, for example, if you go with one million being the largest power of ten you have a special name for, I would expect the digit grouping in written form to separate digits into groups of 10).

> **Comments:**
> **username_9**: That's an *integer*. Now, how do you say 1.239 475 612 034? No one says "1 decimal two hundred thirty-nine thousandths four hundred seventy-five millionths six hundred and twelve billionths and thirty four trillionths". It's "one decimal (string of digits)". When you give your credit card number over the phone to order something, do you say "one quadrillion, two hundred thirty-four trillion, five hundred sixty-seven billion, eight hundred ninety million, one hundred twenty-three thousand, four hundred fifty-six" or do you just say say "1234567890123456"?  
> **username_8**: @KeithMorrison The OP only asks for integers, and my suggestion does not preclude alternative methods for decimals or reading off digits.  

---

### Answer by username_10 on 2021-06-28. Score: 5

For *precise* integers, I see no viable systematic alternative that covers them all up to arbitrary size. But often, you don't need precise integers with all digits specified, spelled out, and spoken. For *unprecise* integers you can design some spoken form of exponent notation (like 1.0E9 in some programming language notation).


---

### Answer by username_11 on 2021-06-28. Score: 3

If -el "applies", I'm not sure about using it between digits. By that logic, `KarelBis` would be `4` applied to `2`, so `2^4`. Going that route, and assuming base 10 is the more common counting system in your world, you would need a word for `10`, eg. `Dix` (from French). So `1001` would be `DixelDixelDixUn`: `10 * 10 * 10 + 1`. Or these moderators could use prime numbers (important in cryptography) to communicate among themselves. If -el is the concatenator for powers, and let's say -id is the concatenator for multiplication (and no concatenator for addition), then `4837560` would be **`TerelBisidTeridPanidSetidDixTeridKaridDixelDixKaridDixTer`**. That is, `2^3 x 3^1 x 5^1 x 7^1 x 13^1 x 443^1` with `443 = 4 * 10 * 10+4 * 10+3`, though I don't see a way to put that in parenthesis. Harder than spelling out the digits!


---

### Answer by username_12 on 2021-07-01. Score: 1

You can have some fun with this.

If the moderators resemble humans and are not good at repeating identical strings an exact number of times, then you can use something like [Hebrew numerals](https://en.wikipedia.org/wiki/Hebrew_numerals) or [Greek numerals](https://en.wikipedia.org/wiki/Greek_numerals) but with short syllables. The idea being that you effectively have multiple series of digits that cover different place value positions. Combining this idea with a simple collection of syllables that run in some order will give you a number system that's pronounceable but lets you skip zeroes when the gaps can be determined from context.

One problem with a system like this is that it takes up a lot of *space*. Either many numbers will be homophones with non-numbers or the numbers will be occupying some very important real estate and the rest of the language will have to adapt.


---

