diff --git a/maths/sum_of_squares.py b/maths/sum_of_squares.py new file mode 100644 index 000000000..1af5d0b8b --- /dev/null +++ b/maths/sum_of_squares.py @@ -0,0 +1,31 @@ +""" +This script demonstrates the implementation of the sum of squares of the first n natural numbers. + +The function takes an integer n as input and returns the sum of squares +from 1 to n using the formula n(n + 1)(2n + 1) / 6. This formula computes the sum efficiently +without the need for iteration. +""" + +def sum_of_squares(n: int) -> int: + """ + Implements the sum of squares formula for the first n natural numbers. + + Parameters: + n (int): A positive integer representing the limit of the series + + Returns: + sum_squares (int): The sum of squares of the first n natural numbers. + + Examples: + >>> sum_of_squares(5) + 55 + + >>> sum_of_squares(10) + 385 + """ + return n * (n + 1) * (2*n + 1) // 6 + + +if __name__ == "__main__": + import doctest + doctest.testmod()