結果
問題 |
No.2 素因数ゲーム
|
ユーザー |
![]() |
提出日時 | 2021-09-20 16:31:33 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 5,000 ms |
コード長 | 777 bytes |
コンパイル時間 | 1,054 ms |
コンパイル使用メモリ | 75,528 KB |
最終ジャッジ日時 | 2025-01-24 16:02:53 |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
#include <iostream> #include <utility> #include <vector> template <typename T> std::vector<std::pair<T, int>> prime_factorization(T n) { std::vector<std::pair<T, int>> res; for (T i = 2; i * i <= n; ++i) { if (n % i != 0) continue; int exponent = 0; while (n % i == 0) { ++exponent; n /= i; } res.emplace_back(i, exponent); } if (n != 1) res.emplace_back(n, 1); return res; } template <typename T> bool nim(const std::vector<T> &a) { long long x = 0; for (const T e : a) { x ^= e; } return x != 0; } int main() { int n; std::cin >> n; std::vector<int> a; for (const std::pair<int, int> &p : prime_factorization(n)) { a.emplace_back(p.second); } std::cout << (nim(a) ? "Alice\n" : "Bob\n"); return 0; }