« Project Euler : Problem 55 | トップページ | Project Euler : Problem 57 ~ 漸化式 »

2010年11月29日 (月)

Project Euler : Problem 56

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

 

 自然数 ab の桁の和を計算する関数を f(a, b) とすると、

f(a, b) = f(a * 10, b) = f(a * 100, b)
ということが分かります。すなわち、"a" が 10 の倍数の時には計算する必要が無いということです。
 そこで今回は次のようなコードを書いてみました。
import ForEuler problem056 :: Integer problem056 = maximum nums where nums = [f (a ^ b) | a <- [2 .. 99], rem a 10 /= 0, b <- [2 .. 99]] f n = sum $ dexToList n main :: IO () main = print problem056

« Project Euler : Problem 55 | トップページ | Project Euler : Problem 57 ~ 漸化式 »

Haskell」カテゴリの記事

Project Euler」カテゴリの記事

コメント

コメントを書く

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

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

トラックバック

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

この記事へのトラックバック一覧です: Project Euler : Problem 56:

« Project Euler : Problem 55 | トップページ | Project Euler : Problem 57 ~ 漸化式 »

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            
フォト

最近のトラックバック

無料ブログはココログ