Interpret numbers very literally To interpret a positive integer very literally, write it in English words (without &quot;and&quot;), replace hyphens with spaces, replace each resulting word with its number value, and concatenate the results into a single number.
To write a positive integer more than 99 but less than 1000 in English words, prefix its last two digits written in English with [first digit in English]hundred  with a trailing space.
To write a positive integer more than 999 but less than 1 million in English words, use the following syntax: [part before the last 3 digits in English]thousand[last 3 digits in English], all separated by spaces.
The task is to input a positive integer (less than 1 million) and output it, interpreted very literally.
Examples
1 -&gt; 1                       (one)
10 -&gt; 10                     (ten)
16 -&gt; 16                     (sixteen)
23 -&gt; 203                    (twenty three)
111 -&gt; 110011                (one hundred eleven)
123 -&gt; 1100203               (one hundred twenty three)
1234 -&gt; 110002100304         (one thousand two hundred thirty four)
12345 -&gt; 1210003100405       (twelve thousand three hundred forty five)
123456 -&gt; 110020310004100506 (one hundred twenty three thousand four hundred fifty six)
1056 -&gt; 11000506             (one thousand fifty six)
101101 -&gt; 11001100011001     (one hundred one thousand one hundred one)
110110 -&gt; 1100101000110010   (one hundred ten thousand one hundred ten)

Feel free to add more test cases if necessary.
This is tagged code-golf, so the shortest code wins.
Python 2, 76 bytes



f=lambda n,k=1000:n&gt;19and(f(n/k,k/10)+`k-k%4*5`)*(n&gt;=k)+f(n%k,k/10)or`n`[:n]


Try it online!

Test suite from Chas Brown.

A fully recursive solution that splits on place values k=1000, k=100, and k=10. The separator for the place values is computed as k-k%4*5, which maps 

1000 -&gt; 1000
100  -&gt; 100
10   -&gt; 0


By stopping when n&lt;=19, we avoid one-word numbers in the teens being split up.