My son likes large numbers (like septillion, googol and googolplex) and once asked me how long it would take to count to septillion (which is 1 followed by 24 zeros). I told him it would take longer than the age of the universe to do that, so he started working his way down. He asked me about counting to one million. I did a little math (assuming one number per second) and got about 11-12 days . . . but then thought, the large numbers (like 658,243) take more than a second to say.

Looked on the web a little to see if anyone else had done a more sophisticated calculation. Lots of calculations were like my own (assuming one number per second). Others acknowledge that it would take longer for large numbers and made assumptions about what that would be. But nothing definitive, so I thought I’d make one. This counting calculator is based on the number of syllables in every number and counts all the syllables you’d have to pronounce in order to count from one to one million (or other numbers).





There is also a Spanish and Espanol number version of the calculator.

﻿﻿

If the calculator is not self-explanatory, there are several steps to follow:

First time yourself counting to 20. Based on your time, the calculator determines your counting rate in syllables per second (there are 32 syllables in the numbers between one and twenty). You can try to count the number of syllables yourself. Specify what number you’d like to count to, the default is one million but you can specify one billion or any number below one trillion. Specify how many hours per day you think you can count. Remember you need to eat and sleep and take breaks too. Push the button and it’ll tell you how long it takes to count to your target number.

You can vary different parameters (counting speed, hours per day and target number) to see how long counting might take. (Spoiler, if you count to large numbers, it can take a very long time!)

I also decided to plot the number of syllables in each number between one and a million. Not totally straightforward to plot one million points in an interactive fashion (where you can hover over the plot to see what numbers have how many syllables) so I ended up making a static image in R. It also shows the cumulative average number of syllables when counting up from one to the numbers below one million.



Here’s another one that’s somewhat annotated so you can see what the peaks and troughs are.



The numbers with the lowest number of syllables are the simplest numbers with the fewest words (i.e. one thousand, one million) while the numbers with the most syllables are the ones with the most words (i.e. seven hundred fifty six thousand four hundred twenty three). This is why the range of syllables is highest when you get over one hundred thousand. Seven has more syllables (2) than the other numbers between one and ten, and seventy has more syllables (3) than the other numbers when counting by tens. So 77 has the most syllables of all numbers below 100. The first set of peaks highlighted on the plot are due to 177, 277, 377 . . . 977, with a peak at 777 below 1000. The 2nd set is due to 1777, 2777, etc.

The troughs follow the same pattern where 100, 200 . . .900 have the same number of syllables, except for 700, which has one more. Same is true of thousands, tens of thousands and hundreds of thousands. The number under one million with the most syllables is 777,777, which has 20 syllables.

You can test the algorithm used to generate the word number from the number digits and the calculated number of syllables. The program skips the word “and” that people often use in numbers like “four hundred and twenty three” and just outputs “four hundred twenty three”.



Update: I tried to upgrade this calculator from going up to 1 trillion to handling a septillion, but I found out that Javascript can only hand up to about 9 quadrillion before breaking down. This mini-calculator now goes up to about 9 quadrillion.





Program and Data: The program was written in Javascript and runs locally in your browser. The static plots were generated in R (R Studio) from the output of the Javascript program.

