contests/arc044/arc044_a.rs (47 lines of code) (raw):

#![allow(non_snake_case)] use proconio::input; fn get_digit(mut n: u64) -> u32 { let mut digit = 0; while n != 0 { n /= 10; digit += 1 } return digit; } fn main() { input! { N: u64 } if N == 1 { println!("Not Prime"); return; } for i in 2..N { if N % i == 0 { if N == i { println!("Prime"); return; } } } let digit = get_digit(N); let first = N - (N / (10_u64.pow(digit - 1)) * 10); let is_five = first == 5; let is_even = first % 2 == 0; if is_even || is_five { println!("Not Prime"); return; } let mut n = N; let mut sum = 0; for i in 1..digit { let first = N - (N / (10_u64.pow(digit - i)) * 10); sum += first; n /= 10; } if (sum + n) % 3 == 0 { println!("Not Prime"); return; } println!("Prime"); } // https://atcoder.jp/contests/arc044/tasks/arc044_a // 未完成 // 参考 https://atcoder.jp/contests/arc044/submissions/26498999