結果
問題 |
No.889 素数!
|
ユーザー |
|
提出日時 | 2020-08-05 18:40:36 |
言語 | OCaml (5.2.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 877 bytes |
コンパイル時間 | 254 ms |
コンパイル使用メモリ | 21,576 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-09 01:56:54 |
合計ジャッジ時間 | 1,974 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 56 WA * 5 |
ソースコード
let () = let rec primes n m k lst = if n < m then lst else if n mod m = 0 then primes (n/m) m k (m :: lst) else if m = 2 then primes n (m+1) k lst else primes n (m+2) k lst in let rec insert x lst = match lst with | [] -> [(1, x)] | (cnt, num) :: t -> if num = x then (cnt+1, num) :: t else (cnt,num) :: insert x t in let rec separete lst = match lst with | [] -> [] | (a,b) :: t -> a :: separete t in Scanf.scanf "%d\n" @@ fun n -> let lst = primes n 2 n [] in let slst = List.fold_left (fun lst x -> insert x lst) [] lst in Printf.printf "%s\n" (if List.length lst = 1 then "Sosu!" else if List.for_all (fun x -> x = 2) (separete slst) then "Heihosu!" else if List.for_all (fun x -> x = 3) (separete slst) then "Ripposu!" else if (List.fold_left (+) 0 lst) = 2 * n then "Kanzensu!" else string_of_int n)