REM Combination
REM Epoc
REM OPL

INCLUDE "CONST.OPH"

PROC go:
	LOCAL n%,p%

	FONT KFontCourierNormal18&, KgStyleBold%
	
	STYLE 4
	PRINT "Combination > Epoc > OPL"
	PRINT

	STYLE 2
	PRINT "Enter value for 'n'";
	STYLE 0
	PRINT ": ";
	INPUT n%

	STYLE 2
	PRINT "Enter value for 'p'";
	STYLE 0
	PRINT ": ";
	INPUT p%

	PRINT
	
	STYLE 0
	PRINT "Factorial(";n%;") = ";factorial:(n%)
	PRINT "Factorial(";p%;") = ";factorial:(p%)
	PRINT "Factorial(";n%-p%;") = ";factorial:(n%-p%)
	PRINT "Combination(";n%;",";p%;") = ";combination:(n%,p%)
	
	PRINT
	PRINT "[Press 'Enter']"
	GET
ENDP

PROC factorial:(n%)
	IF (n% <= 1)
		RETURN 1
		ELSE RETURN n% * FACTORIAL:(n% - 1)
	ENDIF
ENDP

PROC combination:(n%, p%)
	RETURN factorial:(n%) / (factorial:(n% - p%) * factorial:(p%))
ENDP
