結果
| 問題 |
No.713 素数の和
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-09-16 02:04:28 |
| 言語 | OCaml (5.2.1) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 877 bytes |
| コンパイル時間 | 517 ms |
| コンパイル使用メモリ | 20,984 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-09 00:31:17 |
| 合計ジャッジ時間 | 868 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 6 |
ソースコード
let search_prime_num n =
let arr = Array.make (n - 1) true in
let rec search_prime_num' i =
if i <= n then (
if arr.(i - 2) then (
let rec mark_comp_num j =
let k = i * j in
if k <= n then (
if arr.(k - 2) then arr.(k - 2) <- false;
mark_comp_num (j + 1)
)
in
mark_comp_num 2
);
search_prime_num' (i + 1)
)
in
search_prime_num' 2;
arr
let sum_primes arr =
let len_arr = Array.length arr in
let rec sum_primes' i result =
if i >= len_arr then
result
else
let result' =
match arr.(i) with
| true -> result + i + 2
| false -> result
in
sum_primes' (i + 1) result'
in
sum_primes' 0 0
let () =
let n = read_line () |> int_of_string in
search_prime_num n
|> sum_primes
|> Printf.printf "%d\n"