Project Euler Problems

Project Euler Problem 006

Description

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.

main.ts

import { range } from "../util/util.ts"
import { sum, square } from "../util/util.ts"
import { differenceOfFns } from "../util/functional.ts"

type Range = {
    start: number,
    end: number
}

function squareOfSum(r: Range): number {
    return square(range(r.start, r.end).reduce(sum))
}

function sumOfSquares(r: Range): number {
    return range(r.start, r.end).map(square).reduce(sum)
}

function main() {
    const result = differenceOfFns(
        squareOfSum, sumOfSquares,
        { start: 1, end: 10 }) //?
    console.log(result)
}

main();