63
\$\begingroup\$

I'm honestly surprised that this hasn't been done already. If you can find an existing thread, by all means mark this as a duplicate or let me know.

Input

Your input is in the form of any positive integer greater than or equal to 1.

Output

You must output the sum of all integers between and including 1 and the number input.

Example

 In: 5
     1+2+3+4+5 = 15
Out: 15

OEIS A000217 — Triangular numbers: a(n) = binomial(n+1,2) = n(n+1)/2 = 0 + 1 + 2 + ... + n.

Leaderboard

Run the code snippet below to view a leaderboard for this question's answers. (Thanks to programmer5000 and steenbergh for suggesting this, and Martin Ender for creating it.)

var QUESTION_ID=133109,OVERRIDE_USER=69148;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} /* font fix */ body {font-family: Arial,"Helvetica Neue",Helvetica,sans-serif;} /* #language-list x-pos fix */ #answer-list {margin-right: 200px;}
<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\$
  • 5
    \$\begingroup\$ Closely related \$\endgroup\$ – FryAmTheEggman Jul 18 '17 at 20:36
  • \$\begingroup\$ @FryAmTheEggman Sorry - had a bit of a brain fart there. I see what you mean. \$\endgroup\$ – GarethPW Jul 18 '17 at 20:45
  • 2
    \$\begingroup\$ @Aaron you got ninja'd by Husk, which was just posted with a 1 byte solution \$\endgroup\$ – Skidsdev Jul 18 '17 at 21:35
  • 7
    \$\begingroup\$ I suggest a stack snippet. \$\endgroup\$ – programmer5000 Jul 19 '17 at 11:42
  • 1
    \$\begingroup\$ Related: minecraftforum.net/forums/off-topic/… \$\endgroup\$ – Jerry Jeremiah Jul 27 '17 at 12:20

150 Answers 150

1
\$\begingroup\$

4, 40 bytes

3.70060101002000120300026040230503045054

Try it online!

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

Braingolf, 1 byte

Q

Try it online!

1-indexed (ie 7 returns 0-6 summed)

Braingolf, 3 bytes

U&+

Try it online!

U - range, &+ - sum.

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

Cubically, 19 bytes

R3U1F1$:1/1+7*7/0%6

How it works:

R3U1F1              Set the top face to 2
      $             Get the first input as a number
       :1/1+7       Set the notepad to the input + 1
             *7     Multiply the notepad by the input
               /0   Divide the notepad by 2
                 %6 Output the notepad as a number
\$\endgroup\$
1
\$\begingroup\$

MY, 4 bytes

Wow, MY is actually capable of something!

𝕫iΣ↵

Try it online!

Explanation (hex/cp):

1A/𝕫 - push input as an integer
49/i - pop a; push [1 .. a]
53/Σ - pop a; push sum(a)
27/↵ - pop a; print(a) (with newline)
\$\endgroup\$
1
\$\begingroup\$

Pyth, 11 9 bytes

VQ=+ZhN)Z

Explanation:

VQ       For N in range(0, Input)
=+ZhN)   Set Z to Z + 1 + N, suppress output and close function call
Z        Output Z

Try it online!

\$\endgroup\$
  • \$\begingroup\$ Beat you by 7 bytes \$\endgroup\$ – Tornado547 Dec 11 '17 at 16:38
  • \$\begingroup\$ @Tornado547 I know, but that answers been taken. This is just a unique way of doing it. 2 bytes: sS. \$\endgroup\$ – Stan Strum Dec 11 '17 at 16:39
1
\$\begingroup\$

,,,, 6 bytes

::×+2÷

Try it online!

Explanation:

::     Duplicates the input twice
  ×    Pops off top two values and muliples them
   +   Adds the two values together. (Thus far it's basically n*n+n)
    2÷ Divides by 2
\$\endgroup\$
1
\$\begingroup\$

Add++, 15 9 bytes

D,f,@,Rb+

Try it online!

ಠ_ಠ I forgot about functions. And then I forgot about the range command

How it works

D,f,@,    - Create a monadic function called f (one argument)
      R   - Generate a range from 1 to n
       b+ - Reduce that range by addition (sum)
\$\endgroup\$
1
\$\begingroup\$

Recursiva, 3 bytes

sBa

Try it online!

Recursiva, 5 bytes

H*a;a

Try it online!

Recursive solution:

Recursiva, 12 bytes

=a0:0!+a#~a$

Try it online!

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

Pyth - 2 Bytes

sS

Explanation:

sSQ Q added implicitly to resolve arity
s   sum of
 S  integers from one to
  Q input
\$\endgroup\$
1
\$\begingroup\$

SNOBOL4 (CSNOBOL4), 62 40 38 bytes

 N =INPUT
 OUTPUT =N * (N + 1) / 2
END

Try it online!

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

Alumin, 9 bytes

jqdhcpfaf

Try it online!

Explanation

jqdhcpfaf
j          numeric input
 q   p     whlie TOS > 0
  d        duplicate TOS
   hc      subtract 1
      f f  fold over...
       a   ... addition 
\$\endgroup\$
  • \$\begingroup\$ @Riker shoot lol done \$\endgroup\$ – Conor O'Brien Dec 17 '17 at 21:06
1
\$\begingroup\$

brainfuck, 14 bytes

,[[>+<<.>-]>-]

Try it online!

Takes input as character code, outputs as unary null bytes

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

Japt -x, 3 1 bytes

ò

Explanation:

ò     Range [0...Input]
-x    Sum

Try it online!

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

Phooey, 10 bytes

&.@+1*/2$i

Try it online!

Explanation

&.@+1*/2$i
&.            write input to the tape
  @           push same input to the stack
   +1         increment tape value
     *        multiply tape value by popped stack value
      /2      divide it by 2
        $i    output as integer
\$\endgroup\$
1
\$\begingroup\$

Ahead, 6 bytes

IEK+O@

Try it online!

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

@yBASIC, 10 bytes

?_*_+_>>!.

Input should be in _ (No input methods exist)

Explanation

N(N+1) can be rewritten as N*N+N. Dividing by 2 would then require parentheses, but a left shift can be used instead. !. is the same as !0.0 (logical not of 0), which is 1.

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

MathGolf, 2 bytes

╒Σ

Try it online!

Pretty much exactly the sum (Σ) of the range from 1 to input ()

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

Keg, 3 bytes (SBCS)

Ï⅀.

Keg, 5 bytes (SBCS)

Ï∑+).

Explanation:

Ï#    Range from input to 0. The 0 will not affect the summation.
 ∑+#  Apply all stack: add.
   )# We have to complete the braces if we want to output as an integer.
    .#Output as an integer

TIO

\$\endgroup\$
  • \$\begingroup\$ That's available on the github interpreter and theoretically, it should work. \$\endgroup\$ – Jono 2906 Oct 13 at 1:13
0
\$\begingroup\$

Tcl, 36 bytes

time {incr s [incr n]} $argv;puts $s

Try it online!

\$\endgroup\$
0
\$\begingroup\$

Tcl, 29 bytes

puts [expr $argv*($argv+1)/2]

Try it online!

\$\endgroup\$
  • 1
    \$\begingroup\$ If you've got two Tcl answers, you should probably put them in one answer. \$\endgroup\$ – numbermaniac Jul 19 '17 at 0:24
  • \$\begingroup\$ @numbermaniac I have three. \$\endgroup\$ – sergiol Jul 19 '17 at 0:29
  • 6
    \$\begingroup\$ Ah. It's probably better to put them all in one answer, then. \$\endgroup\$ – numbermaniac Jul 19 '17 at 1:08
0
\$\begingroup\$

QBIC, 10 bytes

?(:+1)/2*a

This prints (input+1) divided by 2 times input. Looping through all numbers from 1 to n is one byte longer:

[:|p=p+a]?p
\$\endgroup\$
0
\$\begingroup\$

Pyke, 2 bytes

Ss

Try it online!

Showing off Pyke's roots in being inspired by Pyth, the function map is exactly the same, only ran as a stack rather than a tree.

S  -  range(1, input+1)
 s - sum(^)
\$\endgroup\$
0
\$\begingroup\$

Scala, 12 bytes

Gauss sum (12 bytes):

n=>n*(n+1)/2

Naive version (14 bytes):

n=>1.to(n).sum
\$\endgroup\$
0
\$\begingroup\$

Clojure, 28 bytes

#(apply + (range 1 (inc %)))
\$\endgroup\$
0
\$\begingroup\$

Java 8 (39 37 bytes)

n->{System.out.println((n*(n+1))/2);}

saved 2 bytes thanks to @TheLethalCoder. I now realise that I could also omit print statements etc, but there already is a Java answer that I missed, which would end up being pretty much the same thing. Thus I will leave it as this :-)

(Is this the right way of scoring Java? I have no clue if this is valid, I saw it in another answer but this actually omits quite a bit of the code necessary to actually run it..)

try it online

\$\endgroup\$
  • 1
    \$\begingroup\$ (n) can be just n. You can return from the lambda, I believe, instead of printing. And yes it's fine to compile to a lambda. \$\endgroup\$ – TheLethalCoder Jul 19 '17 at 12:34
  • \$\begingroup\$ Side note: Use four spaces to format the code not back ticks. \$\endgroup\$ – TheLethalCoder Jul 19 '17 at 12:34
  • \$\begingroup\$ @TheLethalCoder thanks! I just found another Java answer to this thread which indeed does it a great deal shorter and does not print ^^ \$\endgroup\$ – Dylan Meeus Jul 19 '17 at 12:34
0
\$\begingroup\$

Clojure, 16 bytes

#(/(*(inc %)%)2)
\$\endgroup\$
0
\$\begingroup\$

Groovy, 11 bytes

{it*++it/2}

Try it online!


The input is not modified by rules of Groovy clsures.

\$\endgroup\$
0
\$\begingroup\$

PHP, 35 34 32 25 bytes

<?=$argv[1]*++$argv[1]/2;

Run from the command line, with the input as a parameter.

\$\endgroup\$
  • \$\begingroup\$ Save 6 bytes with $argn and -F \$\endgroup\$ – Titus Jul 26 '17 at 11:34
0
\$\begingroup\$

Fortran 95, 58 bytes

function l(n)
i=1
l=1
do while(i<n)
i=i+1
l=l+i
end do
end

Try it online!

\$\endgroup\$
0
\$\begingroup\$

Dyvil, 12 bytes

n=>n*(n+1)/2

The operator rules force me to use either parentheses or spaces. Uses the Gauss method, and is also a Scala polyglot.

Usage:

let f: int -> int = n=>n*(n+1)/2

print f(5)  // 15
print f(10) // 45
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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