Project Euler 6

'''
Created on 2014年8月29日
Sum square difference
The sum of the squares of the first ten natural numbers is,
12 + 22 + ... + 102 = 385
The square of the sum of the first ten natural numbers is,
(1 + 2 + ... + 10)2 = 552 = 3025
Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 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.
@author: wxp2971
'''

# 暴力的方式直接求和计算数值
sumsqr = 0
num = 100
for i in range(1,num+1):
    sumsqr += i*i
sqrsum = 0
for i in range(1,num+1):
    sqrsum += i
sqrsum *= sqrsum
diff = sqrsum - sumsqr
print(diff)

# 列举出几项观察后,做差只剩下交叉项×2,直接对交叉项累加求和
diff = 0
num = 100
for i in range(1,num+1):
    for j in range(i+1,num+1):
        diff += 2*i*j
print(diff)

# 利用数列的通项公式计算
num = 100
sum = (num + 1)*num/2
sumsqr = (2*num + 1)*(num + 1)*num/6
diff = sum*sum - sumsqr
print(int(diff))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值