Проект Эйлера. Задача 6 «Разность между суммой квадратов и квадратом суммы»

Проект Эйлера: Условие

Сумма квадратов первых десяти натуральных чисел равна

12 + 22 + … + 102 = 385

Квадрат суммы первых десяти натуральных чисел равен

(1 + 2 + … + 10)2 = 552 = 3025

Следовательно, разность между суммой квадратов и квадратом суммы первых десяти натуральных чисел составляет 3025 − 385 = 2640.

Найдите разность между суммой квадратов и квадратом суммы первых ста натуральных чисел.

Решение:

#   s  = N(N + 1) / 2.
#   s2 = N(N + 1)(2N + 1) / 6.
# Поэтому s^2 - s2 = (N^4 / 4) + (N^3 / 6) - (N^2 / 4) - (N / 6).
def compute():
	N = 100
	s = sum(i for i in range(1, N + 1))
	s2 = sum(i**2 for i in range(1, N + 1))
	return str(s**2 - s2)


if __name__ == "__main__":
	print(compute())