Project Euler #6 in Java Project Euler #6:


  The sum of the squares of the first ten natural numbers is,
  
  \$1^2+2^2+ ... + 10^2 = 385\$
  
  The square of the sum of the first ten natural numbers is,
  
  \$(1+2+ ... + 10)^2 = 55^2 = 3025\$
  
  Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is \$3025 − 385 = 2640\$.
  
  Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.


Here is my solution:

public class DifferenceFinder {

    private static final int MAX = 100;

    public static void main(String[] args) {
        long time = System.nanoTime();
        int result = MAX * (MAX + 1) / 2;
        result *= result;
        for(int i = 1; i &lt;= MAX; i++) {
            result -= i * i;
        }
        time = System.nanoTime() - time;
        System.out.println("Result: " + result
                + "\nTime used to calculate in nanoseconds: " + time);
    }

}


It simply does:

$$(1+2+ ... + 100)^2-1^2-2^2- ... -100^2$$

Output:


  Result: 25164150
Time used to calculate in nanoseconds: 2231


Questions:


Is the simplest solution the most efficient one?
Does it smell?
A sum of first \$n\$ numbers is \$\frac{n(n+1)}{2}\$. A sum of squares of first \$n\$ numbers is \$\frac{n(n+1)(2n+1)}{6}\$. A difference in question is \$\frac{n^2(n+1)^2}{4} - \frac{n(n+1)(2n+1)}{6} = \frac{(n-2)(n-1)n(n+1)}{12}\$. 

This solution is likely the most efficient.