結果
問題 | No.1235 ζ関数 |
ユーザー |
![]() |
提出日時 | 2020-09-21 15:23:31 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1 ms / 2,000 ms |
コード長 | 864 bytes |
コンパイル時間 | 12,100 ms |
コンパイル使用メモリ | 394,128 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-24 11:44:01 |
合計ジャッジ時間 | 12,625 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
use std::io::*; use std::str::FromStr; fn get_primes(max_prime: i64) -> Vec<i64> { let mut ret = Vec::new(); let mut isprime = vec![true; (max_prime + 1) as usize]; isprime[0] = false; isprime[1] = false; for i in 2..(max_prime + 1) as usize { if isprime[i] { ret.push(i as i64); for j in i * 2..(max_prime + 1) as usize { isprime[j] = false; } } } ret } fn zeta(n: i64) -> f64 { let primes = get_primes(10000); let mut ret = 1.0; for i in 0..primes.len() { let p = primes[i] as f64; let x = 1.0 / (1.0 - p.powf(-n as f64)); ret *= x; } ret } fn main() { let mut s = String::new(); stdin().read_line(&mut s).ok(); let s = s.trim(); let n = i64::from_str(s).unwrap(); println!("{:.14}", zeta(n)); }