Updated factorial with long and added nCr and nPr