7, 10 bytes, 27 characters
115160723426754314105574033
Try it online!
The packed representation of this program on disk is (xxd
format):
00000000: 269c 3a71 6f63 308b 7c0d &.:qoc0.|.
Explanation
We've seen this sequence of numbers before, in Automate Saving the World, which was about printing the numbers at regular intervals, making it interesting via requiring the use of a very old language. Much newer languages can have their own twists that make this challenge interesting, though. (Yes, this paragraph, and in fact the reason I started writing this answer, is effectively just a way to get all the related challenges to show up together in the sidebar; normally people do that using comments but I don't have enough rep.)
The first thing to note is that 7 is made entirely of digits, so going for the bonuses here is unlikely to work (although if you view the program as a sequence of octets, none of them correspond to ASCII representations of any of the original numbers, so you could claim the bonus in that sense). The next thing to note is that 7 has commands to recreate the command sequence likely to have produced a specific piece of data; so could we possibly interpret the Lost numbers 4815162342
as a section of a 7 program itself?
The answer is "not quite". The most problematic part is that second number, 8
. 7 programs are written in octal; there's no such number as 8. So the very start of the string will have to be printed differently.
The base of the program is therefore based on the 7 "Hello world" program:
5431410557403
543141055 string literal
7 separate data from code
4 rearrange stack: {program's source}, empty element, {literal}
0 escape {the literal}, appending it to {the empty element}
3 output {the escaped literal}, pop {the program's source}
with the escaped literal being in a domain-specific language that's interpreted as follows:
5 output format: US-TTY using pairs of digits in the string
43 select character set: digits and common symbols
14 "4"
10 "8"
55 forget the set output format
After this comes an extra 3
, which outputs the remaining stack element (and exits due to insufficient remaining stack). That element is specified at the start of the program, and to avoid the unmatched 6
(which works a bit like a closing bracket), we generate it using code, rather than writing it directly as data. (Note that there are two implied 7
characters at the start of the program, which is relevant here):
{77}115160723426
7 empty stack element
7 11516 append "1151"
0 append "6"
723246 append "2324"
That produces the following literal:
115162324
1 set output format: literally as octal
15162324 "15162324"
which gets printed out.
restricted-source
tag that could have been used here: although most answers are avoiding obvious solutions, I think the challenge would have been slightly more interesting if using digits were forbidden altogether. \$\endgroup\$