結果
問題 | No.103 素因数ゲーム リターンズ |
ユーザー |
|
提出日時 | 2023-11-21 00:21:45 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1 ms / 5,000 ms |
コード長 | 1,483 bytes |
コンパイル時間 | 13,506 ms |
コンパイル使用メモリ | 378,696 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-26 06:48:42 |
合計ジャッジ時間 | 14,679 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 20 |
ソースコード
fn main() {let _n = {let mut line = String::new();std::io::stdin().read_line(&mut line).unwrap();line.trim().parse::<usize>().unwrap()};let mm: Vec<_> = {let mut line = String::new();std::io::stdin().read_line(&mut line).unwrap();line.split_whitespace().map(|x| x.parse::<usize>().unwrap()).collect()};let mut xor = 0;for m in mm {for (_, exp) in prime_factorization(m) {xor ^= exp % 3;}}println!("{}", if xor != 0 { "Alice" } else { "Bob" });}/// Performs prime factorization of `n`.////// The result of the prime factorization is returned as a/// list of prime factor and exponent pairs.////// # Examples////// ```/// assert_eq!(prime_factorization(1), vec![]);/// assert_eq!(prime_factorization(12), vec![(2, 2), (3, 1)]);/// assert_eq!(prime_factorization(19), vec![(19, 1)]);/// assert_eq!(prime_factorization(27), vec![(3, 3)]);/// ```pub fn prime_factorization(n: usize) -> Vec<(usize, usize)> {assert_ne!(n, 0, "`n` must be at least 1.");let mut factors = vec![];let mut t = n;for p in 2.. {if p * p > t {break;}let mut e = 0;while t % p == 0 {t /= p;e += 1;}if e != 0 {factors.push((p, e));}}if t != 1 {factors.push((t, 1));}factors}