結果
| 問題 | 
                            No.889 素数!
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2020-03-17 20:04:38 | 
| 言語 | Rust  (1.83.0 + proconio)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 985 bytes | 
| コンパイル時間 | 11,523 ms | 
| コンパイル使用メモリ | 378,120 KB | 
| 実行使用メモリ | 5,248 KB | 
| 最終ジャッジ日時 | 2024-11-30 22:52:21 | 
| 合計ジャッジ時間 | 13,243 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 59 WA * 2 | 
ソースコード
use std::io::*;
fn main() {
    let mut s: String = String::new();
    std::io::stdin().read_to_string(&mut s).ok();
    let mut itr = s.trim().split_whitespace();
    let mut n: usize = itr.next().unwrap().parse().unwrap();
    let mut is_prime: Vec<usize> = vec![1; 300030];
    is_prime[0] = 0;
    is_prime[1] = 0;
    for i in 2..65 {is_prime[i*i] = 2; is_prime[i*i*i] = 3; if is_prime[i] == 1 {let mut j = i * 2;while j <= n {if is_prime[j]==1{is_prime[j] = 0;}j += i;}}}
    match is_prime[n] {
        1 => println!("Sosu!"),
        2 => println!("Heihosu!"),
        3 => println!("Ripposu!"),
        _ => {
            let m = n;
            let mut sum = 0;
            for i in 2..n {
                while n % i == 0 {
                    sum += i;
                    n /= i;
                }
            }
            if sum + 1 == m {
                println!("Kanzensu!");
            } else {
                println!("{}", m);
            }
        }
    }
}