Given two numbers, n and r, the task is to compute nPr, which represents the number of ways to arrange r elements from a set of n elements. It is calculated using the formula n!/(n−r)!, where "!" denotes the factorial operation.
Examples:
Input: n = 5
r = 2
Output: 20
Explanation: 5P2 = 5! / (5 - 2)! = 20
Input: n = 6
r = 3
Output: 120
Explanation: 6P3 = 6! / (6 - 3)! = 12
Try It Yourself
For calculating nPr using an iterative factorial function. First computes n! and (n - r)! separately and then divides them to get the result. The factorial function uses a loop to multiply numbers from 1 to n.
#include <iostream>
using namespace std;
// Function to calculate factorial
int fact(int n)
{
int result = 1;
for (int i = 2; i <= n; i++)
{
result *= i;
}
return result;
}
// Function to calculate nPr
int nPr(int n, int r)
{
return fact(n) / fact(n - r);
}
int main()
{
int n = 5;
int r = 2;
cout << nPr(n, r) << endl;
return 0;
}
#include <stdio.h>
// Function to calculate factorial
int fact(int n)
{
int result = 1;
for (int i = 2; i <= n; i++)
{
result *= i;
}
return result;
}
// Function to calculate nPr
int nPr(int n, int r)
{
return fact(n) / fact(n - r);
}
int main()
{
int n = 5;
int r = 2;
printf("%d\n", nPr(n, r));
return 0;
}
public class GfG {
// Function to calculate factorial
public static int fact(int n) {
int result = 1;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
// Function to calculate nPr
public static int nPr(int n, int r) {
return fact(n) / fact(n - r);
}
public static void main(String[] args) {
int n = 5;
int r = 2;
System.out.println(nPr(n, r));
}
}
# Function to calculate factorial
def fact(n):
result = 1
for i in range(2, n + 1):
result *= i
return result
# Function to calculate nPr
def nPr(n, r):
return fact(n) // fact(n - r)
n = 5
r = 2
print(nPr(n, r))
using System;
class GfG
{
// Function to calculate factorial
static int Fact(int n)
{
int result = 1;
for (int i = 2; i <= n; i++)
{
result *= i;
}
return result;
}
// Function to calculate nPr
static int NPr(int n, int r)
{
return Fact(n) / Fact(n - r);
}
static void Main()
{
int n = 5;
int r = 2;
Console.WriteLine(NPr(n, r));
}
}
// Function to calculate factorial
function fact(n) {
let result = 1;
for (let i = 2; i <= n; i++) {
result *= i;
}
return result;
}
// Function to calculate nPr
function nPr(n, r) {
return fact(n) / fact(n - r);
}
let n = 5;
let r = 2;
console.log(nPr(n, r));
Output
5P2 = 20