結果

問題 No.3388 Sum of Function
コンテスト
ユーザー NakLon131
提出日時 2025-11-28 22:29:44
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 965 bytes
コンパイル時間 13,714 ms
コンパイル使用メモリ 396,772 KB
実行使用メモリ 7,852 KB
最終ジャッジ日時 2025-11-28 22:30:03
合計ジャッジ時間 14,912 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

use proconio::input;

fn main() {
    input! {
        a: usize, b: usize,
    }

    // bまでの素数を求める
    let primes = prime_list(b);

    // [a..b]に含まれる素数について、f(x)を計算して総和を加算
    let mut ans = 0;
    for val in primes {
        if val < a { continue; }
        ans += fx(val);
    }
    println!("{}", ans);
}

fn fx(x: usize) -> usize {
    x*x*x - x*x + x + 1
}


// エラトステネスの篩による素数リスト
pub fn prime_list(x: usize) -> Vec<usize> {
    let mut bools = vec![true; x + 1];
    bools[0] = false;
    bools[1] = false;
    let mut i = 2;
    while i * i <= x {
        if bools[i] {
            let mut now = 2 * i;
            while now <= x {
                bools[now] = false;
                now += i;
            }
        }
        i += 1;
    }
    let mut ret = Vec::new();
    for i in 0..=x {
        if bools[i] {
            ret.push(i)
        };
    }
    ret
}
0