結果
問題 | No.2379 Burnside's Theorem |
ユーザー | あさくち |
提出日時 | 2023-07-14 21:24:43 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 10 ms / 2,000 ms |
コード長 | 1,089 bytes |
コンパイル時間 | 12,963 ms |
コンパイル使用メモリ | 405,824 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-16 06:12:25 |
合計ジャッジ時間 | 14,099 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 20 |
ソースコード
use std::collections::HashSet; // #[proconio::fastout] fn main() { let n: usize = input_value(); let primes = prime_factorize(n); let mut set = HashSet::new(); for prime in primes { set.insert(prime); } if set.len() <= 2 { println!("Yes"); } else { println!("No"); } } fn input_value<T>() -> T where T: std::str::FromStr, <T as std::str::FromStr>::Err: std::fmt::Debug, { let stdin = std::io::stdin(); let mut buf = String::new(); stdin.read_line(&mut buf).unwrap(); buf = buf.trim_end().to_owned(); let n = buf.parse().unwrap(); n } fn prime_factorize(n: usize) -> Vec<usize> { let mut current = n; let mut list = Vec::new(); { let mut i = 2; while i * i <= n { while current % i == 0 { list.push(i); current /= i; } if current == 1 { break; } i += 1; } if current != 1 { list.push(current); } } list }