結果

問題 No.2 素因数ゲーム
コンテスト
ユーザー scaler
提出日時 2024-08-31 15:20:41
言語 Scala(Beta)
(3.8.1)
コンパイル:
scalac _filename_
実行:
/usr/bin/scala_run _class_
結果
AC  
実行時間 496 ms / 5,000 ms
コード長 617 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 10,460 ms
コンパイル使用メモリ 262,608 KB
実行使用メモリ 56,904 KB
最終ジャッジ日時 2026-03-09 20:12:21
合計ジャッジ時間 23,803 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge1_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