結果
| 問題 | No.312 置換処理 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-04-21 15:26:59 |
| 言語 | Haskell (9.10.1) |
| 結果 |
AC
|
| 実行時間 | 25 ms / 2,000 ms |
| コード長 | 826 bytes |
| コンパイル時間 | 10,534 ms |
| コンパイル使用メモリ | 173,056 KB |
| 実行使用メモリ | 8,192 KB |
| 最終ジャッジ日時 | 2024-11-15 12:15:52 |
| 合計ジャッジ時間 | 7,063 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 45 |
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default [1 of 2] Compiling Main ( Main.hs, Main.o ) [2 of 2] Linking a.out
ソースコード
import Control.Monad
import Debug.Trace
div2 :: Integer -> Integer
div2 en
| odd en == True = en
| otherwise = div2 $ div en 2
searchSosu :: Integer -> Integer -> Integer -> Integer
searchSosu pn rootn n
| pn > rootn = n
| modpn == 0 = pn
| otherwise = searchSosu (pn + 2) rootn n
where
modpn = n `mod` pn
main = do
n <- (read :: String -> Integer) <$> getLine
let
oddn = div2 n
n' | n == oddn = n
| oddn == 1 = n
| otherwise = oddn
floor_rootn = floor $ sqrt $ fromInteger (n'::Integer)
rootn_1 = floor_rootn + 1
oddsosu = searchSosu 3 rootn_1 n'
result | oddsosu < 4 = oddsosu
| (n `mod` 4) == 0 = 4
| otherwise = oddsosu
print result