2008-12-21から1日間の記事一覧
4n+1型の素数を平方数の和に分解する。 e.g. 5 = 1+4=1^2+4^2 1249 = 15^2+32^2 17669 = 70^2+113^2 225221 = 410^2+239^2 import Number import Data.List pRoot p = g.foldl1' f $ [1..div (p-1) 2] where f a b = mod (a*b) p g x = min x $ p-x sqSum p …
http://projecteuler.net/index.php?section=problems&id=153とりあえず書いたが、速く動かない。(10^8ってかなり大きい気がするんですが。) import Number import Data.List -- ナーイブな実装 divisors n = [(a,b)| a <- [1..n], b <- [0..n-1], mod (n*…