006. 和的平方与平方的和之间的差值(Sum square difference)
前十个自然数的平方的和为:
$$ 1^2+2^2+3^2+\cdots+10^2=385 $$而前十个自然数和的平方为:$$ (1+2+3+\cdots+10)^2=55^2=3025 $$两者的差为\(3025-385=2640\),求前一百个自然数的和的平方与平方的和之间的差值。
分析:此题可以直接使用求和公式求解,则:
$$
S(n)=(\frac{1}{2}n(n+1))^2-\frac{1}{6}n(n+1)(2n+1)=\frac{1}{12}n(n-1)(n+1)(3n+2)
$$
代入\(S(100)\)可以直接算出结果,代码如下:
def main(n=100):
ans = n*(n-1)*(n+1)*(3*n+2)/12
return int(ans)