結果

問題 No.2007 Arbitrary Mod (Easy)
コンテスト
ユーザー xsd
提出日時 2022-07-16 18:24:07
言語 OCaml
(5.4.0)
コンパイル:
ocamlfind ocamlopt -linkpkg -package zarith,str _filename_ -o a.out
実行:
./a.out
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 326 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,651 ms
コンパイル使用メモリ 23,052 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2026-03-17 18:39:46
合計ジャッジ時間 3,679 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

Scanf.scanf "%d %d" (fun a n ->
    let z = 1000000007 in

    let ( *@) a b = (a * b) mod z in

    let pow a b =
        let rec loop r i acc =
            if i = 0 then acc else loop (r *@ r) (i lsr 1) (if i land 1 = 0 then acc else acc *@ r)
        in
        loop a b 1
    in
    Printf.printf "%d\n%d\n" z (pow a n)
)
0