結果

問題 No.2 素因数ゲーム
ユーザー BinomialSheep
提出日時 2023-03-31 02:34:54
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 711 bytes
コンパイル時間 1,731 ms
コンパイル使用メモリ 195,436 KB
最終ジャッジ日時 2025-02-11 19:26:38
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

// 普通の素因数分解 O(√N)
template <typename T>
vector<pair<T, T>> calcPrimeFactorSimple(T n) {
  vector<pair<T, T>> ret;
  for (T i = 2; i * i <= n; i++) {
    if (n % i != 0) continue;
    T tmp = 0;
    while (n % i == 0) {
      tmp++;
      n /= i;
    }
    ret.emplace_back(i, tmp);
  }
  if (n != 1) ret.emplace_back(n, 1);
  return ret;
}

// https://yukicoder.me/problems/18
// No.2 素因数ゲーム
// やるだけ
int main() {
  int N;
  cin >> N;

  vector<pair<int, int>> vec = calcPrimeFactorSimple(N);

  int grundy = 0;

  for (auto [_, scd] : vec) {
    grundy ^= scd;
  }
  cout << (grundy ? "Alice" : "Bob") << endl;

  return 0;
}
0