Program to calculate the value of nPr

Last Updated : 2 Mar, 2026

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.

Permutation - Formula, Definition ...

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
redirect icon

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.

C++
#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;
}
C
#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;
}
Java
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));
    }
}
Python
# 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))
C#
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));
    }
}
JavaScript
// 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
Comment