« Project Euler : Problem 45 ~ 三角数、五角数、六角数 | トップページ | Haskell の fibonacci が遅い理由が分かった »

2010年8月27日 (金)

Project Euler : Problem 46 ~ Goldbach予想

 問題はこちらをご覧ください。
 また、自作の "ForEuler module" に関してはこちらをご覧ください。

 

 この問題では、まず「Goldbach の予想」に合う数かどうかを判定する「isGoldbach 関数」を定義しました。
 次に、「isGoldbach 関数」が「偽」になる数の先頭を探しました。
 なんの工夫も無いですね……。

import ForEuler (isPrime) isGoldbach :: Integer -> Bool isGoldbach n = or [isPrime (n - s) | s <- takeWhile (< n) wSquare] where wSquare = [2 * x * x | x <- [1 ..]] problem046 :: Integer problem046 = head $ filter (not . isGoldbach) xs where xs = filter (not . isPrime) [3, 5 ..] main :: IO () main = print problem046

« Project Euler : Problem 45 ~ 三角数、五角数、六角数 | トップページ | Haskell の fibonacci が遅い理由が分かった »

Haskell」カテゴリの記事

Project Euler」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/112020/49263825

この記事へのトラックバック一覧です: Project Euler : Problem 46 ~ Goldbach予想:

« Project Euler : Problem 45 ~ 三角数、五角数、六角数 | トップページ | Haskell の fibonacci が遅い理由が分かった »

2016年7月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
フォト

最近のトラックバック

無料ブログはココログ