difference-of-squares

This commit is contained in:
2025-04-25 21:00:53 -04:00
parent 5f594b12e3
commit cbeda5d38b
11 changed files with 295 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
defmodule Squares do
@moduledoc """
Calculate sum of squares, square of sum, difference between two sums from 1 to a given end number.
"""
@doc """
Calculate sum of squares from 1 to a given end number.
"""
@spec sum_of_squares(pos_integer) :: pos_integer
def sum_of_squares(number) do
div(number * (number + 1) * (2 * number + 1), 6)
end
@doc """
Calculate square of sum from 1 to a given end number.
"""
@spec square_of_sum(pos_integer) :: pos_integer
def square_of_sum(number) do
div(number * (number + 1), 2) ** 2
end
@doc """
Calculate difference between sum of squares and square of sum from 1 to a given end number.
"""
@spec difference(pos_integer) :: pos_integer
def difference(number) do
abs(square_of_sum(number) - sum_of_squares(number))
end
end