title: Implementation of Sum in Ada
body: <p>1) </p>
  
  <pre><code>Sum := 0;
  for J in 1 .. N loop
  Sum := Sum + J;
  end loop;
  </code></pre>
  
  <p>2)</p>
  
  <pre><code>Sum := ((N + 1) * N) / 2;
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/L7pyr.png" alt="enter image description here"></p>
  
  <p>I've read that the first(left) solution is more "general" - applicable to a wide range of values ​​- than second(right) solution. What does "general" mean - can be computed without overflow?</p>