main :: IO ()
main = do
print $ f 3 200 100
print $ f 3 500 200
print $ f 4 200 100
f :: Double -> Double -> Double -> Integer
f p n m = round $ (* 2) $ sum $ zipWith (*) (pi * (1 - a / 2) : repeat (pi * (1 - a))) $ takeWhile (> 0) $ iterate (+ (- m)) n
where a = (p - 2) / p