Project Euler 173

プロジェクトオイラー
http://projecteuler.net/index.php

Q173.
正方形のタイルを正方形上に並べる。ただし、中央に正方形の穴を開ける。100万個までのタイルを使ったとき、この形状は何通りできるか。

外側にn枚、m層並べたとすると、その合計枚数は、n2 - (n - 2m)2 = 4m(n - m) で n - m > m。
この平易な問題は、次の問題の前振りの役割を担っている。


from math import sqrt

N = 1000000
M = N / 4
print sum(map(lambda m: M / m - m, xrange(1, int(sqrt(M + 0.5)))))