# 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.

# 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>

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

# MAWP, 8 bytes

@!1+*2$:  Try it! Old solution that manually loops through integers: # MAWP, 13 bytes 0@[!\+/1-]:  Try it! ## <>^v, 8 bytes ,≈)*2?/;  #### Explanation ,≈)*2?/; , Read number from stdin ≈ Duplicate top of stack ) Increment top of stack * Multiply top element of stack by second element of stack 2 Push 2 ? Swap top two elements of stack / Divide top element of stack by second element of stack ; Print top of stack  run online # Python 3, 26 bytes lambda n:sum(range(1,n+1))  Try it online! Bewildered this isn't here yet. • It isn't here because it's much longer than the optimal lambda n:n*-~n/2 Commented Dec 10, 2021 at 20:25 • I've posted an alternative 19-byter, but it's not as short as @pxeger's solution Commented Oct 26, 2022 at 6:41 # APOL, 18 bytes v(0);ⅎ(⧣ ∆(0 ∈));⁰ # Factor + math.unicode, 12 bytes [ [1,b] Σ ]  Try it online! Posting this here because the other Factor answer is incorrect. # J-uby, 7 bytes :+|:sum  Try it online! # Desmos, 13 bytes f(n)=.5nn+.5n  Very surprised that there wasn't a Desmos answer here yet. Try It On Desmos! # Mornington Crescent, 1136 bytes I was surprised not to find an answer here already -- I thought we MC programmers had scoured the simpler challenges pretty clean. Take Northern Line to Bank Take Circle Line to Bank Take District Line to Parsons Green Take District Line to Bank Take Circle Line to Hammersmith Take Circle Line to Notting Hill Gate Take Circle Line to Notting Hill Gate Take Circle Line to Aldgate Take Circle Line to Aldgate Take Metropolitan Line to Chalfont & Latimer Take Metropolitan Line to Aldgate Take Circle Line to Hammersmith Take Circle Line to Aldgate Take Circle Line to Aldgate Take Metropolitan Line to Chalfont & Latimer Take Metropolitan Line to Aldgate Take Circle Line to Aldgate Take Circle Line to Victoria Take Circle Line to Hammersmith Take Circle Line to Cannon Street Take Circle Line to Hammersmith Take Circle Line to Cannon Street Take Circle Line to Bank Take Circle Line to Victoria Take District Line to Turnham Green Take District Line to Hammersmith Take District Line to Turnham Green Take District Line to Notting Hill Gate Take Circle Line to Notting Hill Gate Take District Line to Upminster Take District Line to Bank Take District Line to Upminster Take District Line to Bank Take Circle Line to Bank Take Northern Line to Mornington Crescent  Try it online! Summary of the program: 1. Parse integer from string using Parsons Green and store in Bank (as far as I know, MC only supports string input) 2. Find bitwise negation of integer using Notting Hill Gate 3. Multiply integer by its bitwise negation using Chalfont & Latimer and store in Victoria 4. Calculate 1 by dividing the input integer by itself using Cannon Street 5. Retrieve stored value from Victoria and bitwise shift right by 1 using Turnham Green 6. Find bitwise negation of result using Notting Hill Gate 7. Add 1 to result using Upminster 8. Output the result via Mornington Crescent  # Prolog (SWI), 18 bytes N+R:-R is\N* -N/2.  Try it online! Simple application of the formula # Python 3, 32 19 bytes lambda z:z*(z+1)//2  -13 bytes because lambdas are small -6 bytes due to a rereading. -2 bytes thanks to @oeuf • -2 bytes – oeuf Commented Apr 23, 2022 at 5:38 • I see. Is the newline counted? Commented Apr 25, 2022 at 11:12 • – oeuf Commented Apr 25, 2022 at 13:52 • ok then, so i've updated it Commented Apr 26, 2022 at 16:07 # Thunno+, 2 bytes (actually $$\ 2 \log_{256}(96) \approx \$$ 1.65 bytes but that doesn't show up on the leaderboard) RS  Attempt This Online! ## Thunno, $$\ 4 \log_{256}(96) \approx \$$ 3.29 bytes R1+S  Attempt This Online! or 1+RS  Attempt This Online! #### Explanations RS # Implicit input # The + flag pushes input+1 R # Push range(0, input+1) S # Sum this list # Implicit output  R1+S # Implicit input R # Push range(0, input) 1+ # Add one to each S # Sum this list # Implicit output  1+RS # Implicit input 1+ # Add one to the input R # Push range(0, input+1) S # Sum this list # Implicit output  # TacO, 8 bytes @+%i i  A very simple solution. Iterates from 1 to the first argument, returning the index at each step, then sums the stack. Implicitly output. @ ; Program Entry + ; Sum the result of %i ; Loop from 1 to input i ; Passed value of the loop  Try it online! # PowerShell, 22 bytes 1.."$args"-join'+'|iex


Try it online!

# Thunno 2S, 1 byte

R


Attempt This Online!

## Thunno 2, 2 bytes

RS


Attempt This Online!

Pretty simple.

# VyxalRs, 0 bytes

## Or 2 bytes depending on whether you count the flags here.




Try it Online!

Vyxal has useful flags.

• btw: codegolf.stackexchange.com/a/248138 (no need to delete) Commented Jun 24, 2023 at 3:23
• @naffetS I knew there would be a duplicate! Commented Jun 24, 2023 at 8:59

# Ly, 3 bytes

R&+


Try it online!

A literal interpretation of the contest here...

R    - generate a range of numbers from 0 to "N" (from STDIN)
&+  - sum the stack
- print the stack as numeric values by default


# 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!

## 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