# C Program find nCr and nPr.

CServer Side ProgrammingProgramming

In C programming language, nCr is referred as the combination. nCr is the selection of r objects from a set of n objects, where the order of objects does not matter.

nPr is referred as the permutation. nPr is arrangement of 'r' objects from a set of 'n' objects, which should be in an order or sequence.

## Permutations and combinations formulas

The formulas to find the permutation and combination of given numbers in C language are given below −

• nCr = n!/(r!*(n-r)!)
• nPr = n!/(n-r)!.

The logic used to find nCr is as follows −

result = factorial(n)/(factorial(r)*factorial(n-r));

The logic used to find nPr is as follows −

result = factorial(n)/factorial(n-r);

## Example

Following is the C program to find the permutation and combination of given numbers −

#include <stdio.h>
long factorial(int);
long find_ncr(int, int);
long find_npr(int, int);
int main(){
int n, r;
long ncr, npr;
printf("Enter the value of n and r\n");
scanf("%d%d",&n,&r);
ncr = find_ncr(n, r);
npr = find_npr(n, r);
printf("%dC%d = %ld\n", n, r, ncr);
printf("%dP%d = %ld\n", n, r, npr);
return 0;
}
long find_ncr(int n, int r) {
long result;
result = factorial(n)/(factorial(r)*factorial(n-r));
return result;
}
long find_npr(int n, int r) {
long result;
result = factorial(n)/factorial(n-r);
return result;
}
long factorial(int n) {
int c;
long result = 1;
for (c = 1; c <= n; c++)
result = result*c;
return result;
}

## Output

When the above program is executed, it produces the following output −

Enter the value of n and r
5 2
5C2 = 10
5P2 = 20