621
\$\begingroup\$

Note to challenge writers as per meta consensus: This question was well-received when it was posted, but challenges like this, asking answerers to Do X without using Y are likely to be poorly received. Try using the sandbox to get feedback on if you want to post a similar challenge.


It's 2017 2018 2019 2020 2021 2022 2023 2024 already, folks, go home.

Woo, 10 years of this challenge!

So, now that it's 2014, it's time for a code question involving the number 2014.

Your task is to make a program that prints the number 2014, without using any of the characters 0123456789 in your code, and independently of any external variables such as the date or time or a random seed.

The shortest code (counting in bytes) to do so in any language in which numbers are valid tokens wins.


Leaderboard:

var QUESTION_ID=17005,OVERRIDE_USER=7110;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>

\$\endgroup\$
16
  • 23
    \$\begingroup\$ Even though numbers are ignored in brainfuck, I thought I'd post one anyway. 32 Chars: ++++++[>++++++++<-]>++.--.+.+++. \$\endgroup\$ Apr 1, 2015 at 21:37
  • 7
    \$\begingroup\$ Brainfuck isn't a valid language for this challenge. \$\endgroup\$
    – Joe Z.
    Apr 1, 2015 at 22:49
  • 14
    \$\begingroup\$ I know. That's why I posted it as a comment \$\endgroup\$ Apr 1, 2015 at 22:51
  • 13
    \$\begingroup\$ I wonder if this question gets a small spike in popularity around New Year's. \$\endgroup\$
    – Joe Z.
    Dec 26, 2015 at 23:28
  • 5
    \$\begingroup\$ Waiting for "Come on folks, don't you realize it's 2016?" :) \$\endgroup\$
    – padawan
    Jan 4, 2016 at 23:35

331 Answers 331

1
5 6
7
8 9
12
1
\$\begingroup\$

SAS, 34 characters/bytes

data a;x=put(' ',hex.);put x;run;

That puts it to the log, it's 6 longer if you need it to the output window. Note I'm not seeing the second character there; it is backwards-P, which is hex 14.

There should be a shorter solution with %sysfunc(putc(..., but I can't get that to work properly.

\$\endgroup\$
1
\$\begingroup\$

JavaScript 45

alert(parseInt('bbc','twentyonefour'.length))
\$\endgroup\$
1
\$\begingroup\$

Bash - 10 (or 8)

Well there have been a couple of answers that have been disqualified because they rely on the year. When golfing, one side goal is to see how close we can get to breaking the rules as currently written without breaking the letter of the rules (I include the clarifications by Joe Z in the 66 existing comments on the rules). The question very specifically states that I can not depend on 2014 being the current year. I instead rely on it being 8:14pm in my timezone.

date +%H%M 

When I ran it, it output 2014 exactly, thus it satisfies it No, it has to be 2014 exactly. comment. (Due to context people seem to misread it as ... 2014 always, but that was not what was written, even if that were perhaps what was intended.) This lets me beat the current Bash record, at least until this loophole is closed. This interpretation may seem too cheaty since all the existing popular answers assume that the rules really meant always. Indeed some of them exploit this and export something that isn't exactly 2014, but instead contains 2014. I am fine with that interpretation too since Bash can do:

cat /*/*

This is a mere 8 characters, which will concatenates a bunch of files including /dev/urandom/, and it generally takes my machine under a minute to find 2014 in /dev/urandom. Although my rule twisting golfing code of honour won't let me pick this solution since it violates the letter of Joe Z's clarification, the only objection Joe Z raised to the random approach in the 66 comments was that it was too long. At 8 characters this answer is actually shorter than my rules-lawyer answer.

\$\endgroup\$
4
  • 1
    \$\begingroup\$ Normally entries that explore edge cases are popular. This is the only answer they obeys the letter of the rules that is down voted (all other down voted answers rely on year=2014). Anyone care to comment on what rubs them wrong about this answer? \$\endgroup\$
    – gmatht
    Apr 8, 2014 at 0:59
  • \$\begingroup\$ It follows the letter of the rules in a way that's almost universally considered boring and unoriginal. Additionally, it was posted almost three months after the original problem, meaning that it's way back on the 4th page where barely anybody will see it, let alone vote it up. \$\endgroup\$
    – Joe Z.
    Apr 17, 2014 at 0:45
  • \$\begingroup\$ For that matter, I've edited the question again to make my intentions for the problem even clearer. Is "independently of any external variables" good enough? Even then, this answer isn't the shortest in either category, so I still won't accept it. \$\endgroup\$
    – Joe Z.
    Apr 17, 2014 at 0:46
  • \$\begingroup\$ Thanks. For the record, when I commented above this answer had been voted down to -2, so the context was more "would someone like to comment on why they are voting it down?" rather than "why isn't it upvoted?". It also wasn't intended as a criticism of Joe Z's question specification. \$\endgroup\$
    – gmatht
    May 4, 2014 at 13:04
1
\$\begingroup\$

Python, 55 bytes (no math import and no char or unicode trickery!)

x=False;a=x**x;b=a+a;c=b+b;print c**c*(c+c)-b**(c+a)-b

Uses the fact that zero to the zeroth power is defined as one and False can be implicitly casted to 0. Hence a, b and c will contain 1, 2 and 4 respectively.

\$\endgroup\$
1
  • \$\begingroup\$ Arne, True implicitly casts to 1, so you can start with a=True and save 8 characters. Also, please specify Python 2. \$\endgroup\$
    – isaacg
    Jul 17, 2014 at 5:52
1
\$\begingroup\$

Marbelous 14

CB
CE
CF
CD
~~

How it works

the first 4 lines are language literals, in hexadecimal. Their values are 203, 206, 207 and 205. They will fall down by one cell on each tick. If you perform an 8-bit binary not on those values (which is exactly what ~~ does) you get the following values: 52, 49, 48 and 50. These values happen to be the ascii values of 4, 1, 0 and 2 respectively. The literals then fall off the board which causes their corresponding ascii character to be printed to STDOUT.

\$\endgroup\$
1
\$\begingroup\$

C, 27 Bytes

main(){printf("%d",'\aÞ');}

Just a reminder that multi-character constants do exist :)

Alternatively, three bytes more:

main(){printf("%x",' i'-'U');}
\$\endgroup\$
8
  • \$\begingroup\$ 1. int is not needed. 2. return doesn't print anything. \$\endgroup\$
    – Dennis
    Sep 16, 2014 at 15:07
  • \$\begingroup\$ 3. '^GÞ' (character codes 7 and 222) would require only one multi-character constant. \$\endgroup\$
    – Dennis
    Sep 16, 2014 at 15:16
  • \$\begingroup\$ My compiler does not agree :( \$\endgroup\$
    – Gerwin
    Sep 16, 2014 at 15:21
  • \$\begingroup\$ That's odd. 7 * 256 + 222 = 2014, so it should work. What do you get? \$\endgroup\$
    – Dennis
    Sep 16, 2014 at 15:23
  • \$\begingroup\$ 6178782, it seems like my compiler thinks of ^ as a separate character. \$\endgroup\$
    – Gerwin
    Sep 16, 2014 at 15:26
1
\$\begingroup\$

(Java, 553 bytes as .class, 112 bytes as it stands, 84 bytes after renaming the class to 'm' and removing whitespace.)

This probably isn't the kind of answer you're looking for, but there are a bunch of strings that share a hashcode of 2014.

public class make2014 {
    public static void main(String[] args){
        System.out.println("={".hashCode());
    }
}
\$\endgroup\$
3
  • 1
    \$\begingroup\$ Consider adding the language name (Java, I assume) and byte count like the other answers do. \$\endgroup\$ Sep 20, 2014 at 16:31
  • \$\begingroup\$ Thanks, I forgot to do that. I didn't think my file size would matter much - the minimum file size of a .class is far greater than most of the attempts here. \$\endgroup\$
    – John P
    Sep 20, 2014 at 21:43
  • \$\begingroup\$ I got the .java down to 84 bytes without changing functionality. I see other people shaved off 9 bytes by printing special characters to produce 2014 instead of using hashcodes... I kind of thought it would be cheating to do it like that, since you're really printing 2014 as a number in a different format. Oh well. \$\endgroup\$
    – John P
    Sep 20, 2014 at 21:50
1
\$\begingroup\$

Xojo, 27 chars (all ASCII)

MsgBox Str(&hFBC/(&hC-&hA))
\$\endgroup\$
0
1
\$\begingroup\$

Racket: 20 (19 chars)

(char->integer #\ߞ)

ߞ is a unicode character that has 2014 as it's code.

This abuses the fact that every top level form gets its evaluation printed to stdout. This is quite unique amongst LISPs which usualy only have this behaviour in the REPL and not when running programs.

Scheme: 29 bytes (28 chars)

(display(char->integer #\ߞ))
\$\endgroup\$
5
  • \$\begingroup\$ So 29 bytes, then? \$\endgroup\$
    – Joe Z.
    Jan 1, 2014 at 18:47
  • 1
    \$\begingroup\$ @JoeZ. Yes. I was just about to update it :) \$\endgroup\$
    – Sylwester
    Jan 1, 2014 at 18:49
  • \$\begingroup\$ At least in Racket, you don’t need to call display — the REPL will print the result of char->integer automatically — which would save you another 9 chars. \$\endgroup\$ Oct 19, 2014 at 17:19
  • \$\begingroup\$ @MatthewButterick Unlike Scheme and CL #!racket actually display every top level result to stdout even when running a compiled program. It's quite annoying but I can abuse that. thanks :) \$\endgroup\$
    – Sylwester
    Oct 19, 2014 at 18:20
  • \$\begingroup\$ Still beat it, I’m afraid \$\endgroup\$ Oct 19, 2014 at 20:39
1
\$\begingroup\$

TinyMUSH, 16

We need more MUD language entries.

\encrypt($"#&,.)
\$\endgroup\$
1
\$\begingroup\$

Lua - 30 bytes

b=#" "print(b..b-b..b/b..b+b)

# is the length operator, so b = 2.

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Would b/b work? \$\endgroup\$
    – Lynn
    Nov 8, 2014 at 16:20
  • \$\begingroup\$ @nooodl Good suggestion; indeed b/b can replace b-#" " and save 3 characters. \$\endgroup\$ Nov 10, 2014 at 0:56
1
\$\begingroup\$

C++ 30

main(){cout<<('&')*(']'-'(');}
\$\endgroup\$
1
  • \$\begingroup\$ Why do you need the brackets around '&'? Does main(){cout<<'&'*(']'-'(');} not work? \$\endgroup\$
    – Joe Z.
    Mar 24, 2015 at 7:39
1
\$\begingroup\$

x86 machine code, 19 bytes

B8 3A 0E 2C 08 CD 10 2C 02 CD 10 04 01 CD 10 04 04 CD 10

Assembly code equivalent:

mov ax, 0E3Ah; ah = 0Eh (bios teletype), al = 3Ah (ascii semicolon)
sub al, 08h; ascii 2
int 10h

sub al, 02h; ascii 0
int 10h

add al, 01h; ascii 1
int 10h

add al, 04h; ascii 5
int 10h

Yeah, I know: it logs 2015 rather than 2014.

But seeing that this challenge is old and now the year is 2015, it seemed more appropriate to use the current year (it's my excuse for not "going home" :) )

Note: This was tested using DOSBOX

\$\endgroup\$
2
  • 1
    \$\begingroup\$ You have numbers in your source. \$\endgroup\$
    – Elliot A.
    Jan 31, 2016 at 11:06
  • 1
    \$\begingroup\$ @ElliotA. Read the challenge: "without using any of the characters 0123456789"; numbers = characters representing numbers. \$\endgroup\$
    – SirPython
    Jan 31, 2016 at 21:49
1
\$\begingroup\$

JavaScript (19)

Obvious cheating, but these expression ran in REPL print strings "2014" and "2015":

''+'ߞ'.charCodeAt() // 2014
''+'ߟ'.charCodeAt() //2015

TIL: .charCodeAt implicitly converts it's first argument to 0.

\$\endgroup\$
1
\$\begingroup\$

Vitsy, 5 4 Bytes, 3 Characters

When in Rome...

'Nߞ

Get the character with the value 2014 and then print it as a number. Simple.

More Interesting Version (12 10 9 Bytes):

"ca-^b-N-

My language supports hexadecimal, too. ;)

"         Capture the entire source as string by looping around the source.
 ca-      Push 2 to the stack
    ^     45^2
     b-   -11
       N  Output as a number.
        - Only here for character value 45.
\$\endgroup\$
4
  • \$\begingroup\$ Am I right that this language is newer than the question? Besides, I believe this question is already 'closed'(winner chosen, and even an edit at the start discouraging more replies) \$\endgroup\$
    – Sanchises
    Nov 1, 2015 at 11:42
  • \$\begingroup\$ @sanchises You're absolutely right - I'll pull my edit request. I'd still like to add it to the list, though, even if marked as a new language.. :D \$\endgroup\$ Nov 1, 2015 at 11:46
  • \$\begingroup\$ Just put it under 'invalid' I guess, there's a section for that at the end. \$\endgroup\$
    – Sanchises
    Nov 1, 2015 at 11:49
  • \$\begingroup\$ Changed the edit suggestion. :P Forgot about the 'newer than question' thing, but I should've considered that. Thanks, @sanchises \$\endgroup\$ Nov 1, 2015 at 11:50
1
\$\begingroup\$

Perl 5, 8 28 bytes

say 38*53

Seems to do it.

Oh, without cheating ?

$z=ord("!")*ord("=");say++$z
\$\endgroup\$
1
  • \$\begingroup\$ D'oh. I thought it was without any of those numbers. \$\endgroup\$ Dec 2, 2015 at 4:24
1
\$\begingroup\$

Milky Way 1.0.0, 22 bytes

<^a:::+;:l+:>h<::++-<-

Explanation

<          <     <   # rotate the stack leftward
 ^                   # pop the TOS without outputting
  a                  # logical not on the TOS
   :::  :   ::       # duplicate the TOS
      +       ++     # push the sum the top two stack elements
       ;             # swap the top two stack elements
         >           # rotate the stack rightward
          h          # push the TOS to the power of the second stack element
                - -  # push the difference of the top two stack elements

The stack defaults to ["", 0].


Stack Visualization

["", 0]                # default stack

[0, ""]                # <
[0]                    # ^
[1]                    # a
[1, 1, 1, 1]           # :::
[1, 1, 2]              # +
[1, 2, 1]              # ;
[1, 2, 1, 1]           # :
[1, 2, 1, 10]          # l
[1, 2, 11]             # +
[1, 2, 11, 11]         # :
[11, 1, 2, 11]         # >
[11, 1, 2048]          # h
[1, 2048, 11]          # <
[1, 2048, 11, 11, 11]  # ::
[1, 2048, 33]          # ++
[1, 2015]              # -
[2015, 1]              # <
[2014]                 # -

By default, if nothing has been output manually, the bottom stack item is output on termination of the program.


Milky Way (current version), 8 bytes

XZ*W+U+!

Explanation

X         # push 20 to the stack
 Z        # push 100 to the stack
  *       # push the product of the TOS and STOS
   W      # push 10 to the stack
    + +   # push the sum of the TOS and STOS
     U    # push 4 to the stack
       !  # output the TOS
\$\endgroup\$
1
\$\begingroup\$

Retina, 24 bytes (newer than challenge)

Note the trailing space on lines 2 and 3. Language is newer than the challenge.


xx  x xxxx 
+`(x)* 
$#+

Try it online

\$\endgroup\$
1
\$\begingroup\$

Factor, 10 bytes

Not gonna beat my winning answer, but as a follow-on to the other "2014th Unicode char" answers:

CHAR: ߞ .

Prints 2014.

\$\endgroup\$
1
\$\begingroup\$

Mathematica, 10 bytes

N[E,E^E^E]

Prints the decimal expansion of the number e to over 3.8 million decimal places. The first occurrence of 2014 in that decimal expansion starts at the 3180th decimal place.

\$\endgroup\$
1
\$\begingroup\$

VBA, 21 characters

?cells(,"BYL").column

Write and run the above code in the Immediate Window. Basically, the code converts column name BYL to its column index (2014).

\$\endgroup\$
1
  • \$\begingroup\$ For future reference, this may be rewritten as ?[BYL:BYL].Column \$\endgroup\$ Sep 3, 2017 at 21:04
1
\$\begingroup\$

Actually, 15 bytes

This language was created long after this challenge was made, but I thought I'd still try my hand at it. This answer avoids all numerals, including Actually's ² for a*a. Golfing suggestions welcome. Try it online!

╜⌐u;*⌐úl¬¬τu;*-

Ungolfing

╜    Push register 0 (initialized to 0).
⌐u   Add 2 and increment. Returns 3.
;*   Duplicate and multiply. Equivalent to squaring. Returns 9.
⌐    Add 2 again. Returns 11.
úl   Pushes the lowercase alphabet and gets its length. Returns 26.
¬¬   Subtracts 2 twice. Returns 22.
τ    double(). Returns 44.
u    Increment. Returns 45.
;*   Square. Returns 2025.
-    Subtract. Returns 2025 - 11 == 2014.
\$\endgroup\$
1
\$\begingroup\$

Vim 8.0, 15 bytes

:h u
ggf:wywZZp

I didn't see a vim answer yet, so I figured I'd add one. This opens up a helpfile, so it is specifically vim 8.0, since it might not work with a future version that updates that file.

\$\endgroup\$
4
  • \$\begingroup\$ Clever! In my case :h followed by 9wywZZp works. So down to 10 symbols/bytes \$\endgroup\$
    – defhlt
    Dec 5, 2016 at 17:22
  • \$\begingroup\$ @defhlt OK, good to know! Although technically that doesn't work because it uses the digit 9. You could do f:w in place of 9w for only one byte more. Which version of vim do you have? \$\endgroup\$
    – DJMcMayhem
    Dec 5, 2016 at 17:25
  • \$\begingroup\$ Also, !!date +\%Y is 12 symbols (assuming you are reading this from 2014) \$\endgroup\$
    – defhlt
    Dec 5, 2016 at 17:26
  • \$\begingroup\$ You are totally right! I use nvim 0.1.6-dev. \$\endgroup\$
    – defhlt
    Dec 5, 2016 at 17:28
1
\$\begingroup\$

SmileBASIC, 10 bytes

?&HFBC>>!.

&HFBC is hexadecimal for 2014*2, which is right shifted by not(0.0)

?ASC("ߞ") looks shorter, but it's actually the same length when saved in UTF-8, and about 100000x more boring.

\$\endgroup\$
1
\$\begingroup\$

Braingolf, 3 bytes

Try it online!

The ordinal of ߞ is 2014, # pushes the ordinal of the next character to the stack, and Braingolf implicitly outputs the last item on the stack.

\$\endgroup\$
2
  • \$\begingroup\$ Braingolf is your language, right? \$\endgroup\$
    – MD XF
    Jun 6, 2017 at 19:11
  • \$\begingroup\$ @MDXF Indeed it is \$\endgroup\$
    – Mayube
    Jun 6, 2017 at 19:46
1
\$\begingroup\$

JavaScript, 81 76 bytes

l="length";alert(("hi"[l]<<"javascript"[l])-"wow"[l]*"hello death"[l]-true);

\$\endgroup\$
1
\$\begingroup\$

Lua, 27 bytes

Should work in Lua 5.1, Lua 5.2, and Lua 5.3.

x="ɅɅ"print(x:byte()..#x)

Try it online!

This is mean to be saved with the UTF-8 encoding. The first byte of the string is 201, and its length is four. Lua is mostly encoding agnostic, so as long as these things are true in whatever encoding, it works.

With only ASCII, 28 bytes:

x=""io.write(x:byte(y,#x))

Note: the string must contain ASCII 20 and ASCII 14 (which are not printable characters). y here is an undefined variable, so it is nil, which byte defaults to 1 in the first parameter.

\$\endgroup\$
1
\$\begingroup\$

Charcoal, 5 bytes

I²⁰¹⁴

Try it online!

Language was created after January 1, 2014, but as Charcoal uses the superindices ⁰¹²³⁴⁵⁶⁷⁸⁹ to represent the numbers, the answer is valid. :-)

\$\endgroup\$
1
\$\begingroup\$

Lua, 29 bytes

b=("").byte print(b"?"..b"?")

NB: the two question marks are substitutes for characters that are not appearing properly in the post. See the tio link below for proof.

Try it online!

As an interesting point, although this is not the case with Lua, a language with an implementation of pi to at least 3137 digits would be able to print pi and find '2014' at digits 3133-3136!

\$\endgroup\$
1
\$\begingroup\$

√ å ı ¥ ® Ï Ø ¿, 8 bytes

TTX''_o

Try it online!

The rest of the code in the TIO link is the Python interpreter (because I can't be bothered to ask Dennis to add √ å ı ¥ ® Ï Ø ¿

\$\endgroup\$
1
5 6
7
8 9
12

Not the answer you're looking for? Browse other questions tagged or ask your own question.