【欧拉计划第 6 题】和的平方与平方的和差值 Sum square difference

Problem 6 Sum square difference

The sum of the squares of the first ten natural numbers is:

$$
\large 1^2+2^2+3^2+\cdots+10^2=385
$$

The square of the sum of the first ten natural numbers is:

$$
\large (1+2+3+\cdots+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:

$$
\large 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.

问题 6 和的平方与平方的和差值

前十个自然数的平方的和为:

$$
\large 1^2+2^2+3^2+\cdots+10^2=385
$$

而前十个自然数和的平方为:

$$
\large (1+2+3+\cdots+10)^2=55^2=3025
$$

因此,前十个自然数的平方和与和的平方之间的差是:

$$
\large 3025 - 385 = 2640
$$

求前一百个自然数的平方和与和的平方之间的差

思路分析

自然数的平方的和通项公式

$$
\large S(1)=\frac{n(n+1)(2n+1)}{6}
$$

自然数和的平方通项公式

$$
\large S(2)=\left ( \frac{n(n+1)}{2} \right )^2
$$

则和的平方与平方和差值通项公式为

$$
\large S(n)=S(2)-S(1)=\left ( \frac{n(n+1)}{2} \right )^2-\frac{n(n+1)(2n+1)}{6}
$$

$$
\large =\frac{n(n-1)(n+1)(3n+2)}{12}
$$

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
* @Author: coder-jason
* @Date: 2022-04-12 10:48:07
* @LastEditTime: 2022-04-12 11:16:45
*/
#include <iostream>
using namespace std;

int main()
{
int n = 100;
long long int ans = n * (n - 1) * (n + 1) * (3 * n + 2) / 12;
cout << ans;
return 0;
}

答案:25164150