procedure main() write("P(4,2) = ",P(4,2)) write("P(8,2) = ",P(8,2)) write("P(10,8) = ",P(10,8)) write("C(10,8) = ",C(10,8)) write("C(20,8) = ",C(20,8)) write("C(60,58) = ",C(60,58)) write("P(1000,10) = ",P(1000,10)) write("P(1000,20) = ",P(1000,20)) write("P(15000,2) = ",P(15000,2)) write("C(1000,10) = ",C(1000,10)) write("C(1000,999) = ",C(1000,999)) write("C(1000,1000) = ",C(1000,1000)) write("C(15000,14998) = ",C(15000,14998)) end procedure C(n,k) every (d:=1) *:= 2 to k return P(n,k)/d end procedure P(n,k) every (p:=1) *:= (n-k+1) to n return p end