Ну вообще лучше бы вы формулы предоставили а не программу на С, но если я правильно понял метод расчета то это будет похожее на:
module Main where
import Text.Printf
idef i nn steps =
1 - sum [ n*(n+1)**2 + i*(n+1) + j | j <- [0..nn], n <- [0..steps]]
calcAndPrint i nn steps = do
let res = idef i nn steps
printf "%d %f" i res
return res
defect k nn steps =
maximum [ calcAndPrint i nn steps | i <- [nn- k+1 .. nn]]
main = do
let defect_0 = ...
let defect_N = defect <k> <nn> <steps>
printf "defect of P_tau_LH=%f=%e\n" defect_0
На хаскеле я писал довольно мало, поэтому может быть есть более лучший способ.