結果

問題 No.1063 ルートの計算 / Sqrt Calculation
コンテスト
ユーザー kou_kkk
提出日時 2026-04-21 21:00:25
言語 F#
(F# 10.0)
コンパイル:
fsharp_c _filename_
実行:
/usr/bin/dotnet_wrap
結果
AC  
実行時間 430 ms / 2,000 ms
コード長 593 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 8,396 ms
コンパイル使用メモリ 221,508 KB
実行使用メモリ 37,336 KB
最終ジャッジ日時 2026-04-21 21:00:51
合計ジャッジ時間 12,323 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 14
権限があれば一括ダウンロードができます
コンパイルメッセージ
  復元対象のプロジェクトを決定しています...
  /home/judge/data/code/main.fsproj を復元しました (399 ミリ秒)。
/home/judge/data/code/Main.fs(19,13): warning FS0025: この式のパターン マッチが不完全です たとえば、値 '[_]' はパターンに含まれないケースを示す可能性があります。 [/home/judge/data/code/main.fsproj]
  main -> /home/judge/data/code/bin/Release/net10.0/main.dll
  main -> /home/judge/data/code/bin/Release/net10.0/publish/

ソースコード

diff #
raw source code

let factorize n =
    let rec go x i =
        if i * i > x then
            [x]
        elif x % i = 0L then
            i :: go (x / i) i
        else
            i + 1L
            |> go x
    go n 2L

let rec ab a b xs =
    let len = List.length xs
    if len = 0 then
        [| a; b |]
    elif len = 1 then
        [| a; b * xs.[0] |]
    else
        let x :: y :: ys = xs
        if x = y then
            ab (a * x) b ys
        else
            ab a (b * x) (y :: ys)

let n =
    stdin.ReadLine() |> int64

factorize n
|> ab 1L 1L
|> fun ans ->
    printfn "%d %d" ans.[0] ans.[1]
0