T1 Multiples of 3 and 5

T1 Multiples of 3 and 5

Solution

要求小于1000的能被3或5整除的数的和

一种暴力的方法即是枚举每个数,假如能被3或5整除,就加入答案

T1.py
1
2
3
4
5
6
7
8
9
import time

start = time.time()
ans = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
ans += i
print ans
print "Time:", time.time() - start

当然我们也可以考虑容斥

算出3,5,15的倍数的和,然后输出ans(3)+ans(5)-ans(15)即可

T1-2.py
1
2
3
4
5
6
7
8
9
import time

start = time.time()
ans = 0
ans = ans + (1 + 999 / 3) * (999 / 3) / 2 * 3
ans = ans + (1 + 999 / 5) * (999 / 5) / 2 * 5
ans = ans - (1 + 999 / 15) * (999 / 15) / 2 * 15
print ans
print "Time: ", time.time() - start