# Sum of all integers from 1 to n

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.

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>

• Closely related – FryAmTheEggman Jul 18 '17 at 20:36
• @FryAmTheEggman Sorry - had a bit of a brain fart there. I see what you mean. – GarethPW Jul 18 '17 at 20:45
• @Aaron you got ninja'd by Husk, which was just posted with a 1 byte solution – Skidsdev Jul 18 '17 at 21:35
• I suggest a stack snippet. – programmer5000 Jul 19 '17 at 11:42
• – Jerry Jeremiah Jul 27 '17 at 12:20

# Fynyl, 5 bytes

{rf+}


Try it online!

## Explanation

{rf+}    block
r       range from 1 to input


# Somme, 6 bytes

n:i*G.


Try it online!

## Explanation

n:i*G.
n         numeric input      [n]
:        duplicate          [n, n]
i       increment          [n, n+1]
*      product            [n(n+1)]
G     halve              [n(n+1)/2]
.    output             []


# ;#+, 19 bytes

*;(~;~*;)-~(~+~;)+p


Try it online!

Takes input in unary, outputs in decimal.

*;(~;~*;)-~(~+~;)+p
*;                     read 1 byte of input and increment it (check EOF)
~;~                 increment the secondary accumulator
(   *;)              ...while there is still input
-             set delta value to -1 (subtraction)
the state is now (0, N, -)
~(~ ~;)      for each character read
+         subtract N from the secondary accumulator
(N decreases with each iteration)
the state is now (0, -sum, -)
+     subtracts sum from accumulator (0 - (-sum) = 0 + sum = sum)
p    print that value


# D, 28 bytes

N f(N)(N n){return n*-~n/2;}


Try it online!

Alternatively, 61 bytes: import std.range;N f(N)(N n){return std.range.iota(n).sum+n;}

# DScript, 28 bytes

N f(N)(N n){return n*-~n/2;}


Try it online!

Alternatively, 34 bytes: N f(N)(N n){return iota(n).sum+n;}

# Runic Enchantments, 8 bytes

i:1+*2,@


Try it online!

Nothing exciting here, reads input multiplies it with itself+1, divides by 2, and outputs.

Kind of feel that I should have anticipated this sort of 1-input-1-output mathematical operation and made a MathFunc (A) operation for it ("its factorial, but addition!"), but I didn't.

## W, 2 bytes

+R


## Explanation

   % Implicit range from 1 .. input
+R % Reduce the array via addition


# Rust, 12 bytes

|n|n*(n+1)/2


Try it online!

Anonymous function.

# Z80Golf, 11 bytes

00000000: cd03 8047 af80 0520 fcff 76              ...G... ..v


Try it online!

I/O as byte values, takes a byte, outputs a byte. Assembly:

    call $8003 ld b, a xor a loop: add a, b dec b jr nz, loop rst$38
halt


# Z80Golf, 13 bytes

00000000: cd03 805f 193d 20fb 7dff 7cff 76         ..._.= .}.|.v


Try it online!

I/O as byte values, takes a byte, outputs two bytes little endian. Assembly:

    call $8003 loop: ld e, a add hl, de dec a jr nz, loop ld a, l rst$38
ld a, h
rst $38 halt  # Z80Golf, 54 bytes 00000000: cd03 8038 0ed6 3029 e5d1 2929 195f 1600 ...8..0)..))._.. 00000010: 1918 ede5 d11b 197b b220 facd 1f00 7611 .......{. ....v. 00000020: 0000 01f6 ff09 3003 1318 faeb d57d b4c4 ......0......}.. 00000030: 1f00 d17b c63a ...{.:  Try it online! Proper, decimal I/O. Uses a recursive output routine, with a particularly clever 0-byte tailcall: get_input: call$8003
jr c, got_input
sub a, '0'
push hl
pop de
ld e, a
ld d, 0
jr get_input

got_input:
push hl
pop de
loop:
dec de
ld a, e
or a, d
jr nz, loop

call output
halt

; Input:
; HL = number to print
output:
ld de, 0 ; quotient
ld bc, -10
div_loop:
jr nc, neg
inc de
jr div_loop
neg:
ex de, hl
; now: hl = quotient, de = remainder - 10
push de
ld a, l
or h
call nz, output
pop de
ld a, e
; fallthrough to $8000 where the output hook is  Everything assembled with WLA-DX. The -b flag was passed to wlalink, and the following memory map was used: .ROMBANKMAP BANKSTOTAL 1 BANKSIZE$10000
BANKS 1
.ENDRO

.MEMORYMAP
DEFAULTSLOT 0
SLOTSIZE $10000 SLOT 0$0000
.ENDME


# Python 3, 15 bytes

sum(range(n))+n


Just a quick check:

>>> n = 6
>>> func = "sum(range(n))+n"
>>> len(func)
15
>>> eval(func)
21

• Unfortunately, we require that all answers must include input and output, whether that be by a function or a full program. However, you may not assume that the input is saved in a variable. Therefore Try it online! is a valid version of your answer – caird coinheringaahing Dec 3 '17 at 19:27
• This would have to be lambda x:sum(range(n))+n for the rules. – MilkyWay90 Apr 1 '19 at 23:04