結果

問題 No.2 素因数ゲーム
コンテスト
ユーザー scaler
提出日時 2024-08-31 15:20:41
言語 Scala(Beta)
(3.8.2)
コンパイル:
scalac _filename_
実行:
/usr/bin/scala_run _class_
結果
AC  
実行時間 373 ms / 5,000 ms
+ 256µs
コード長 617 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 7,142 ms
コンパイル使用メモリ 260,352 KB
実行使用メモリ 52,056 KB
最終ジャッジ日時 2026-07-28 18:32:18
合計ジャッジ時間 18,058 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import scala.io.StdIn.readLine
import scala.collection.mutable.Map

@main
def yuki2(): Unit =
  val n = readLine.toInt
  val factorsMap = primeFactorization(n)
  var ret: Int = 0
  for (_, v) <- factorsMap do ret ^= v
  println(if ret == 0 then "Bob" else "Alice")

def primeFactorization(n: Int): Map[Int, Int] =
  val factors = Map[Int, Int]()
  var num = n
  while num % 2 == 0 do
    factors(2) = factors.getOrElse(2, 0) + 1
    num /= 2
  var divisor = 3
  while num > 1 do
    while num % divisor == 0 do
      factors(divisor) = factors.getOrElse(divisor, 0) + 1
      num /= divisor
    divisor += 2
  factors
0