結果

問題 No.3296 81-like number
ユーザー hanba-gu1
提出日時 2025-08-23 21:16:22
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 721 bytes
コンパイル時間 12,107 ms
コンパイル使用メモリ 396,924 KB
実行使用メモリ 7,716 KB
最終ジャッジ日時 2025-08-23 21:16:37
合計ジャッジ時間 13,189 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 15
権限があれば一括ダウンロードができます

ソースコード

diff #

use proconio::input;

fn main() {
    input! {
        n: usize,
    }

    let primes = primes((n as f64).sqrt() as usize + 3);
    let mut ans = 0;
    for p in primes {
        let mut temp = p*p;
        while temp <= n {
            ans += temp;
            temp *= p;
        }
    }
    println!("{}", ans);
}

fn primes(max: usize) -> Vec<usize> {
    let mut is_prime = vec![true; max];
    is_prime[0..=1].fill(false);
    for i in 2.. {
        if i*i >= max { break; }
        if is_prime[i] {
            let mut temp = i*2;
            while temp < max { is_prime[temp] = false; temp += i; }
        }
    }
    is_prime.into_iter().enumerate().filter(|&(_, is_prime)| is_prime).map(|(n, _)| n).collect()
}
0