F#: integer (%) integer - Is Calculated How?

Viewed 3199

So in my text book there is this example of a recursive function using f#

let rec gcd = function
| (0,n) -> n
| (m,n) -> gcd(n % m,m);;

with this function my text book gives the example by executing:

gcd(36,116);;

and since the m = 36 and not 0 then it ofcourse goes for the second clause like this:

gcd(116 % 36,36)
gcd(8,36)
gcd(36 % 8,8)
gcd(4,8)
gcd(8 % 4,4)
gcd(0,4) 
and now hits the first clause stating this entire thing is = 4.

What i don't get is this (%)percentage sign/operator or whatever it is called in this connection. for an instance i don't get how

116 % 36 = 8

I have turned this so many times in my head now and I can't figure how this can turn into 8?

I know this is probably a silly question for those of you who knows this but I would very much appreciate your help the same.

4 Answers
Related