こんにちは。
タイトルが完全にネタバレですが、以下のコードを Rust で書き直してみたという記事です。
smooth-pudding.hatenablog.com
上の記事と同様のロジックで「10万以下の素数の個数を数えるコード」をRust で書くとこんな感じになりました:
fn main() { println!("{}", num_primes(&100000)); } fn is_prime(num: &u32) -> bool { if num <= &1 {return false}; for i in 2..*num { if num % i == 0 { return false; } } return true; } fn num_primes(maxnum: &u32) -> u32 { let mut count = 0; for i in 1..=*maxnum { if is_prime(&i) {count += 1;} }; return count; }
(Rust は初心者なので下手くそなコードかもしれませんが許してください(小声))
これを cargo build --release して時間計測をしてみたところ以下のようになりました:
$ time ./count_primes 9592 real 0m1.866s user 0m1.860s sys 0m0.004s
雑な比較ですが、前回 Julia は約2.8秒だったので、2.8/1.86≒1.5倍速く実行できました。