Verify Wolstenholme's theorem Definition

Wolstenholme's theorem states that:



where  a and b are positive integers and p is prime, and the big parentheses thingy is Binomial coefficient.

Task

To verify that, you will be given three inputs: a, b, p, where a and b are positive integers and p is prime.

Compute:



where  a and b are positive integers and p is prime, and the parentheses thingy is Binomial coefficient.

Specs

Since:



where and the parentheses thingy is Binomial coefficient.

You can assume that 2b &lt;= a

Testcases

a b p  output
6 2 5  240360
3 1 13 3697053
7 3 13 37403621741662802118325
Haskell, 73 71 bytes
Due to the recursion, this implementation is very slow. Unfortunately my definition of the binomial coefficient has the same length as import Math.Combinatorics.Exact.Binomial.
n#k|k&lt;1||k&gt;=n=1|1&gt;0=(n-1)#(k-1)+(n-1)#k --binomial coefficient
f a b p=div((a*p)#(b*p)-a#b)p^3       --given formula

An interesting oddity is that Haskell 98 did allow for arithmetic patterns which would have shortened the same code to 64 bytes:
g a b p=div((a*p)#(b*p)-a#b)p^3
n+1#k|k&lt;1||k&gt;n=1|1&gt;0=n#(k-1)+n#k