85
\$\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\$
10
  • 5
    \$\begingroup\$ Closely related \$\endgroup\$ Jul 18, 2017 at 20:36
  • \$\begingroup\$ @FryAmTheEggman Sorry - had a bit of a brain fart there. I see what you mean. \$\endgroup\$
    – GarethPW
    Jul 18, 2017 at 20:45
  • 2
    \$\begingroup\$ @Aaron you got ninja'd by Husk, which was just posted with a 1 byte solution \$\endgroup\$
    – Mayube
    Jul 18, 2017 at 21:35
  • 7
    \$\begingroup\$ I suggest a stack snippet. \$\endgroup\$
    – user58826
    Jul 19, 2017 at 11:42
  • 1
    \$\begingroup\$ Related: minecraftforum.net/forums/off-topic/… \$\endgroup\$ Jul 27, 2017 at 12:20

222 Answers 222

1
4 5
6
7 8
1
\$\begingroup\$

APOL, 18 bytes

v(0);ⅎ(⧣ ∆(0 ∈));⁰

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

Factor + math.unicode, 12 bytes

[ [1,b] Σ ]

Try it online!

Posting this here because the other Factor answer is incorrect.

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

J-uby, 7 bytes

:+|:sum

Try it online!

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

Desmos, 13 bytes

f(n)=.5nn+.5n

Very surprised that there wasn't a Desmos answer here yet.

Try It On Desmos!

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

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
\$\endgroup\$
1
\$\begingroup\$

Prolog (SWI), 18 bytes

N+R:-R is\N* -N/2.

Try it online!

Simple application of the formula

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

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

\$\endgroup\$
4
  • \$\begingroup\$ -2 bytes \$\endgroup\$
    – oeuf
    Apr 23, 2022 at 5:38
  • \$\begingroup\$ I see. Is the newline counted? \$\endgroup\$ Apr 25, 2022 at 11:12
  • \$\begingroup\$ @py3programmer yes \$\endgroup\$
    – oeuf
    Apr 25, 2022 at 13:52
  • \$\begingroup\$ ok then, so i've updated it \$\endgroup\$ Apr 26, 2022 at 16:07
1
\$\begingroup\$

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
\$\endgroup\$
1
\$\begingroup\$

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!

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

PowerShell, 22 bytes

1.."$args"-join'+'|iex

Try it online!

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

Thunno 2 S, 1 byte

R

Attempt This Online!

Thunno 2, 2 bytes

RS

Attempt This Online!

Pretty simple.

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

Vyxal Rs, 0 bytes

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


Try it Online!

Vyxal has useful flags.

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

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
\$\endgroup\$
1
\$\begingroup\$

Swift, 39 28 bytes

var s={(1...$0).reduce(0,+)}

Fairly self-explanatory.

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

Uiua, 15 bytes

/+⇡+1parse&sc

Folds an array from 0 to the input number parsed as an integer.

Uiua Pad

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

bc, 9 bytes

n*(n+1)/2

Try it online!

Weird how some shell solutions call bc instead of just writing bc code.

\$\endgroup\$
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\$
3
  • 1
    \$\begingroup\$ If you've got two Tcl answers, you should probably put them in one answer. \$\endgroup\$ Jul 19, 2017 at 0:24
  • \$\begingroup\$ @numbermaniac I have three. \$\endgroup\$
    – sergiol
    Jul 19, 2017 at 0:29
  • 6
    \$\begingroup\$ Ah. It's probably better to put them all in one answer, then. \$\endgroup\$ Jul 19, 2017 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\$
3
  • 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\$ Jul 19, 2017 at 12:34
  • \$\begingroup\$ Side note: Use four spaces to format the code not back ticks. \$\endgroup\$ Jul 19, 2017 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\$ Jul 19, 2017 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\$
1
  • \$\begingroup\$ Save 6 bytes with $argn and -F \$\endgroup\$
    – Titus
    Jul 26, 2017 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\$
0
\$\begingroup\$

Swift 3, 60 Bytes

var b=Int.init(readLine()!)!
(1..<b).forEach{b+=$0}
print(b)

Try it online!

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

Matlab/Octave, 12 bytes

@(n)sum(1:n)
\$\endgroup\$
1
4 5
6
7 8

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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