# [dc] (GNU), 3 distinct characters (`z|P`), 453 bytes Generator program: [Try it online!][2] Because there can be a lot of possible different states of the stack, this solution prunes the states to be considered (only the topmost 2 can have value different from the default value pushed by `z`); therefore the result might not be optimal. Analysis: There are some options of using a digit, an arithmetic operator and `P`. Possible cases for the arithmetic operator are: * `+`: 1065 bytes. (proven to be optimal) Throws a lot of errors. Generator program: [Try it online!][1] * `v`: 7617 bytes. (proven to be optimal) you can get it from the generator program above by removing the `solve(bestReprAdd),` line in the generator) * `-`: will probably result in the approximately-same or slightly-shorter program. * `%`: obviously impossible. (because, for example, `11111` mod `111` is `11`, so the constructible values are those already constructible with a literal or 0) * `~`: (unfortunately) also impossible because there's no way to discard the remainder without printing it out. * `/` and `|`: should be possible. Analysis pending. * `*` and `^`: probably impossible, because there can only be a small set of representable numbers. * `i`: An interesting possibility (`11i` to increase the input base, `1i` to set the input base to 1); however the input base must be between 2 and 16, so there's no way to decrease the input base, so it's not very likely to work. Other alternatives: * `z`, `P`, (arithmetic operator): Terribly hard to analyze. Using `zP|` results in the solution above. * `z`, `P`, `o` (since the output radix is not used, it's the same as pop the stack and do nothing in this challenge): [1601 bytes][9] (obviously optimal). [1]: https://tio.run/##pVdbb9s2FH62fgWrYIhoy4adoUAnVMaKtQ8FgqZot2KAESS60DZbWVJJKrFb5K8vO@eQki3X7QrsxRF57offuaTemXVV/vqsVo869v9cC/a5kdknlqrqvmTLass@Nptas@pOKGaAXCRfdiyvVv5ElFmVi@C8eXbOH5eq2jCzq2W5YnJTV8qwS6lNyK5qI6syKUL2R1IUSVoIz9H1TrefstS1yEx7tHra0yYx606mSWtVZUJ3osumzExVFdrzQOFEC6NE1igNRgu5kSaYTYfD37jn/d5xTgrV3GRJthbBJtlq@UXEb6pScC8XS7YS5kNSNCKQEbgFAXykv3w8h9@IKWEaVeLNBEO@SXdG6EAvZPTxOmR@Klc@2DrLqlLLHFKGipmpWCooe/eV0hCFURgfmkuFMUIFSdQlagFUUJUe3YADvXPkDeSSJUxqstF5lnoDUQAl/YaSeAP3tZFlkICJkH0Su7gQJbgMmXgpV9LEF9PplFzTVXEnghwv2xSAYbDrDfbkVGjzTtQq6p53saC0LYsqMddhP4hTUQxaFfF/PlBnjZ@B3E886IA8haR/CgqxNO5FlVytu5C@cQfTisxx7Phc0nwfiegBKcfDslKQyzwvBChjKilXguyMZs7IaMZJ5QDcuhTlyqxjRPNElku6PgNbTkFZYRmwvjxnSZmzwGzqKO6iCJ0I5/jEKGefeW8DXhRlONmAYojbvAUdunuKwr2slQG3QKxDEN0NEq0FliPJPIlbR3uqQnbaglU7gLIwsmxE69iFjaqVtTEfeHCxB3FPlF7BlQ5@h8g88t/6IxQiDW05ANXrTmRtGjJMkAanAMkI7/cGwOd/tVD/@8GH@zuMIZ66Dx3bljTJEm0CbGwIckD3Ap275uyMlc0mhXqvlozUaDaeI8I8AsnNHh9tnREwrBX6Hc6mI5Jsr/UkqWtR5gGdyFfAcim25nWZi@37z8pY0mF/AmGfgPrOBow9R2@gMiEN7Fai4C000WwNlARurKUFEa5v2Tx2V7chA7dVIrVgZO6VUpWadOpJALC8DQABYNh6MkmluSkIRwEfEtKLajWbBhecj@lZHIaseDxDIz0XntMJQEXHsE90R9Rzv5ZQMydEI6t7FM/21npshzWzBwbRXIrbYjnK8EGRRLa7neoeFvUE5NjFQn9G6A9gBJUirAZG7aiuepEEZRT3Xxj1cX49d82orY1y5HTND5xysbTdiXyhMh3iD11Zx@h3SL9063TZpLUpaStjWI78O3/oeIBBbDNRmwNYRAdSZNz7cW/GifyU95P9Is9/mGu6IZPU3Wy@@Hh26g0gP0T/hUJ4Ek97qYFabUpsBDCsdkwX1T27l7AENbB3rKXewwZRUisEN/SGc3Y@RMNuU5lok2TQSjh/yKC6cOv5SjYf2NfOdftNTj/4/AiP86nXnyaupGA0t0JHbdkihdjmUzupOhF5gr9XbGSuy0xbDLHFaPSdptpBgLi7xozE740e57892UaL7HYA0GJyqmi9g/nyk2kPTuabtD5wbL6OYdyzd8g@tsydkP/tvOxQOT5qREdKQtbPkBueXYLs9LOExXh2/ST2R35EQwu/3HBs1CzGq37aRx0DLSZlgHz8ebyvEEs9PRRnbvL@r3cjP8a2O5zQQ0uKBfVTWB73qyjynbGVEiLfMZyDRaJWbbNjAWzyKRVhBRUMQ4p7/bHtdQvr4fSFKg8ZbV9di1EibzLcRTF2GB4Ucn8/xd7FwxMEeGJ3b2OFQespoZvCUE6Cgy2YUwz0uZ/nMP9mT2HP426ZTjZpnrBtxNpFj0HGtu0ew0QBExWzuwVzFub@OzIXMR8GB30eUVjhOqFvH8YxdVwvMtMkBYMOVjdWzf7fpIlqIAg/z@DWH4u9CYhZmxxk4gPmt6/fvgLCGVCEUoeUl68@vPnr8hKIfGLluPf4@E9FvVc/jq@u/gU "Python 3.8 (pre-release) – Try It Online" [dc]: https://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html [9]: https://tio.run/##VZBNawIxEIbP5lcMuZil60LpRcQtlNJDoVApvYmHuBvd1JiZ5qNW//w27lo/bkme531nCO1Dg/ZhTK5tfck/GwXfUVcbWDrcWVjhL3zFLXnAH@UgJGzkYQ81rnmhbIW1EsM4HmaMrRxuIexJ2zXoLaEL8KZ9yOGdgkYrTQ7P0hi5NIqduI9Lclgp7xlzykcTSs6ZD7LaTLrwXNuwKOcLtkIHGrQFP2GDXaONAoup4KhCYt1hPrpfTHUSBn3ZXckPPN06WEgiZWthlBXdQ5b9N53Dj7dhvIQJSST/jGYJXRNGLq0q@EcnTIDn0LvZLYE0fh2aTjhucpLO1lMVojSAMVDsay5/VLhoheB1lV75SF1G5Mdd6pQpr@TZ6@wlgazoUda2fw "Python 3.8 (pre-release) – Try It Online" [2]: https://tio.run/##nVZtb@NEEP5s/4qp@6F260RJ@@WI2EMHBQkJ0cIdnyILre11s9Te9XnXTX3AX6fMvtiJ27siISVRdmZ2Xp55Zux20Dsprt603dOTItGHHYOPPS/uIe/kXkAlH@GPvmkVyAfWgUZ1TT8NUMq7aMlEIUsWn/VvzpKwoY/XrNU7crlahWHVyQb00HJxB7xpZafhJ650Cjet5lLQOoXvaF3TvGYp/CZQlMKHvjWnd2JI4ZoXOvQXnZvxpPq87WTBlBolVS8KLWU9CdSgQvwuFdMdK/pOofuaN1zH69X5@VdJGL7XtLj/nWAoOAVa6B5zGcBKU8h7Dc3QmiKZEmcmZGv9FkNR8wJKVnHBTRnOD7H5b3@Wgvkits5/ClzoLAvD8LSQQvESETRWoCXkzIK5l53CALozFaJjlGvNuphuJqS2qM0wq2eSZPF2dt6EAa@AAlc2xgY6pvtOQB4GrEZN/kJDw8D/a7iIKYZI4Z4NpGYCITLJVDXFbESsTDkbh0/iAlnRc5dhMHBWl2C7P7u8XWXJqHWCdeZiIK14NcxCpAgxMmlj4EtB9M01ryp7MsGpUgybYU2ISTbens9iJSaUt/KXCVF9E/MT8oCM7oCn8IDugKGadVSzz7hACE5tHR971rORxL@Yg2N3IeuaFaYDatSWDI2RUYrfCV7xggqNtKqowpYul0tDF83IEUVSV@L4k4XKWKiN5/zy2jjc2msZsd7jJMyZ0hs7IU6TGv5k5M@/Q0tLWpPYcXHlPon3uqRty0QZeyvnaOtPGYki15A7KctYsEdtnduWaIZsy3HEEH511KGpOSngmJHp0kSsSQJCaoO4CQlUlBCHQRDMSATYmJErRzJj56Ms4pE6J8TGX6yTxcSvI/FlQsjKXEywGW3XC7OGcARLN7Vh2DHV15qYEOF@x2sGHvhX68Ov66DHs5XYyErHR3TDKlucZR1/2Q1aH3P@uQ3yLrCBzEogtkVjXJyY2eiZaBYlA@gIDVLdXMg2WDra6B3@0HpPB1zhuC8aWn@DyKAbNLpYuwFSZq6CwKMyRb@IbiM4bXpsmV9Xaoc0Ny3sGC12ZnuDiZ@zgvaKwbc/vDcb7V6ZVnNRoJUy0Je4@qkoTDtxB5pQOarusRzcTYrZ4BNVyNRRD81iPYHzOQakrpLEOOHP6esKCyyMkzCbl2gt5iNyuO8gt7Eu1l@T8Sln3B5lPGtlko72Lxr/pQRfye9TFL6W3pTdW3JlXHkivuAIquIYG4yLhmKCuYGNWCvPhhOyet4HC0zgb8W6aS83pJV7/6gokmSsdHGZOltfrjssYjp26SoZRflhRkdRceilE13YWIe73jmC4v7831b/9V@t9uC5OZih54Y6@tVqNhCl3iiZawCn6c48udDADJY3mqze2VcNkL1ue@fm8DqzxD0Vx1FZoDRasEOI1CylEu@QI@PbH2@/R0WydCpM/unpH2lfCNTT4ubmXw "Python 3.8 (pre-release) – Try It Online"