のてすきあ − 完全独習非プログラマー −

Haskell で Project Euler を解く素人遊び

Problem 46

もう一つのゴールドバッハ予想
素数でない奇数は素数+2×(整数)2 の形で表される。
この予想は正しくない。最小の反例を見つけよ。

 予想をどのように表現するか…である。今回は

{(与えられた数)ー(素数)}/ 2 = (平方数)

となるかどうかを判定することにした。ある数が平方数か否かを判定するのが、最も簡単に思えたからである。ちょっとした実験で、この平方数の判定が全体の計算速度を決める過程であると感じたため、ここをなるべく早くすることに留意しつつ、あとは素直に書いた。  

ゴールドバッハ…☆