Project Euler 1

ブログのネタがない時に一題ずつ解いていこうかなと。

問題はProblem 1 - PukiWikiより。

疑似的に
\sum_{i=1}^{(1000-1)/3}3i + \sum_{j=1}^{(1000-1)/5}5j - \sum_{k=1}^{(1000-1)/15}15k
というわけで、偉大なるオイラー先生の逸話より
3*((1000-1)/3)*((1000-1)/3+1)/2 + 5*((1000-1)/5)*((1000-1)/5+1)/2 - 15*((1000-1)/15)*((1000-1)/15)/2

後は計算のするのみ。

MAX = 1000-1
N = 3
M = 5

nm = N*M
result = N*(MAX/N)*(MAX/N+1)/2 + M*(MAX/M)*(MAX/M+1)/2 - nm*(MAX/nm)*(MAX/nm+1)/2
print result #=> 233168