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 <= 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?