Problem 148
コンテンツ
http://projecteuler.net/index.php?section=problems&id=148
観察から、規則性をみつけ(証明はしていないが、納得できる規則性なのでよしとする)、それを利用。
要するに7進数展開して、ごにょごにょっとすると答えが出てくる。
import Data.List toSepta =reverse. unfoldr f where f = Nothing f n =let (q,r) = divMod n 7 in Just(r,q) decode = fst. foldl f (,1) where f (x,p) y = (28*x + p*(div (y*(y+1)) 2), (y+1)*p) main = print. decode. toSepta$10^9
作成者 Toru Mano
最終更新時刻 2023-01-01 (c70d5a1)