結果
問題 | No.7 プライムナンバーゲーム |
ユーザー | aimy |
提出日時 | 2017-04-28 14:45:37 |
言語 | Haskell (9.8.2) |
結果 |
WJ
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 474 bytes |
最終ジャッジ日時 | 2024-04-09 04:14:50 |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ソースコード
import Data.Bool import Data.List import Data.IntMap ((!)) import qualified Data.IntMap as M primes = 2:3:[x | i<-[1..], j<-[-1,1], let x = 6*i+j, isPrime x] where isPrime n = null [i | i <- takeWhile (\x -> x^2 <= n) primes, rem n i == 0] main = readLn >>= putStrLn . bool "Lose" "Win" . pgame pgame n = (foldl' grundy (M.fromList [(2,0),(3,0)]) [4..n]) ! n /= 0 where grundy im i = M.insert i (minimum ([0..11] \\ (map (im!) (takeWhile (>=2) (map (i-) primes))))) im