Entity: MathFunctions 54 38 null * Operation: combinatorial MathFunctions long n int m int query static n >= m & m >= 0 ( n - m < m => result = Integer.Prd(m + 1,n,i,i) / Integer.Prd(1,n - m,j,j) ) & ( n - m >= m => result = Integer.Prd(n - m + 1,n,i,i) / Integer.Prd(1,m,j,j) ) Operation: factorial MathFunctions long x int query static true ( x < 2 => result = 1 ) & ( x >= 2 => result = Integer.Prd(2,x,i,i) ) Operation: gcd MathFunctions int x int y int query static x >= 1 & y >= 1 true Operation: lcm MathFunctions int x int y int query static x >= 1 & y >= 1 result = ( x * y ) / MathFunctions.gcd(x,y) Activity: MathFunctions gcd l : int ; k : int ; l := x ; k := y ; while l /= 0 & k /= 0 do if l < k then k := k mod l else l := l mod k ; if l = 0 then return k else return l ; return result