あまり大したことはしてなくて計算結果もそれらしい正しそうな値が表示されるのですが
正常に終了(しているように観える)するときと
結果を表示した後にpanicして終了するときがあります
実行するたびに上のどちらかになります
gmpを呼ぶのがunsafeだからだと思うのですが
panicの犯人がどこにいるか調べるにはどうすれば良き?
https://wandbox.org/permlink/3KFAdQezjDCRJCJ0

// https://crates.io/crates/rust-gmp を使用

use gmp::mpf::Mpf;
use std::ops::Div;

fn from_si(si: i64) -> Mpf {
let mut f = Mpf::new(512);
f.set_from_si(si);
f
}

fn main() {
let mut t = from_si(0);
for k in 1..=40000 {
t = t.add(from_si(1).div(from_si(k).sqrt()));
}
let mut exp: i32 = 0;
let s: String = t.get_str(0, 10, &mut exp);
println!("0.{} e{}", s, exp);
}