/* * Author: srtry * Created: 2025-05-05T06:37:08+09:00 * Coding: utf-8-unix */ use proconio::input; use std::io::{stdout,Write,BufWriter}; fn primes_leq(&n:&usize) -> Vec { let mut primes:Vec = Vec::new(); let mut is_prime:Vec = vec![true;n+1]; is_prime[0] = false; is_prime[1] = false; for i in 2..=n { if is_prime[i] { primes.push(i); for j in i..=n/i { is_prime[i*j] = false; } } } return primes; } fn main() { input!{ n:usize } let out = stdout(); let mut out = BufWriter::new(out.lock()); let primes = primes_leq(&n); let mut is_winnum:Vec = vec![true;n+1]; let mut win:bool = false; for i in 2..=n as usize { win = false; for &prime in primes.iter() { if i