Project Euler 1
問題
未満の3または5の正倍数の総和を とおいた時 を求める。
記号
[ 表記 ]:[ 返り型 ]:[ 説明 ]
:真偽値: は の倍数
:正整数: と の最小公倍数
:整数:切り捨て除算、 を超えない最大の整数
解法
未満の の倍数の集合を とおく:
この時 で、これは と それぞれの要素の総和から重複する要素、つまり の要素の総和を引いたものに等しい*1。また、
で、 の要素の総和は
となるので、簡単のため と書くと、
ここからもう少し簡約化したかったが、特に思い付かなかった。 ()と書いて を 、 で置き替えると
ぐらいにはなる。手計算だと少し楽だが、機械にやらせる分には 、 を消去したのが 、 の計算で清算される。
解
*1:この辺の総和の集合を使った表記と式変形のきちんとした話を知らないので恐る恐るになるのがアレ。