/* 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.*/ #define _POSIX_C_SOURCE 199309L #include #include #include int main(int argc, char **argv) { int i, sum_squares = 0, square_sum = 0; double elapsed; struct timespec start, end; clock_gettime(CLOCK_MONOTONIC, &start); /* Straightforward brute-force approach.*/ for(i = 1; i <= 100; i++) { sum_squares += i*i; square_sum += i; } square_sum *= square_sum; clock_gettime(CLOCK_MONOTONIC, &end); elapsed = (end.tv_sec - start.tv_sec) + (double)(end.tv_nsec - start.tv_nsec) / 1000000000; printf("Project Euler, Problem 6\n"); printf("Answer: %d\n", square_sum-sum_squares); printf("Elapsed time: %.9lf seconds\n", elapsed); return 0; }