Friday, June 7, 2013

[Project Euler] Problem 6 in C

Problem: Project Euler Problem 6

Just pure mathematics
No need to loop through every number to find the sum or squares or whatever.

#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
uint64_t getSumOfSquares(int num);
uint64_t getSquareOfSums(int num);
int main()
{
    printf("%llu\n", getSquareOfSums(100) - getSumOfSquares(100));
    return 0;
}

uint64_t getSumOfSquares(int num){
    return (num*(num+1)*(2*num+1))/6;
}

uint64_t getSquareOfSums(int num){
    uint64_t squares;
    squares = num * (num + 1) / 2;
    return squares*squares;
}


Answer:

No comments:

Post a Comment