Skip to content
Related Articles

Related Articles

Improve Article

Program to calculate the value of nPr

  • Difficulty Level : Easy
  • Last Updated : 07 May, 2021

Given two numbers n and r, the task is to find the value of nPr. 
nPr represents n permutation r which is calculated as n!/(n-k)!. Permutation refers to the process of arranging all the members of a given set to form a sequence. The number of permutations on a set of n elements is given by n! where “!” represents factorial. 

nPr = n! / (n - r)! 

Program: 
 

C++




// CPP program to calculate nPr
#include<bits/stdc++.h>
using namespace std;
 
int fact(int n)
{
    if (n <= 1)
        return 1;
    return n * fact(n - 1);
}
 
int nPr(int n, int r)
{
    return fact(n) / fact(n - r);
}
 
// Driver code
int main()
{
    int n = 5;
    int r = 2;
 
    cout << n << "P" << r << " = " << nPr(n, r);
}
 
// This code is contributed by
// Surendra_Gangwar

Java




// Java program to calculate nPr
 
import java.util.*;
 
public class GFG {
 
    static int fact(int n)
    {
        if (n <= 1)
            return 1;
        return n * fact(n - 1);
    }
 
    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(n + "P" + r + " = "
                           + nPr(n, r));
    }
}

Python3




# Python3 program to calculate nPr
import math
def fact(n):
    if (n <= 1):
        return 1
         
    return n * fact(n - 1)
 
def nPr(n, r):
     
    return math.floor(fact(n) /
                fact(n - r))
     
# Driver code
n = 5
r = 2
 
print(n, "P", r, "=", nPr(n, r))
 
# This code contributed by Rajput-Ji

C#




// C# program to calculate nPr
using System;
 
class GFG
{
 
    static int fact(int n)
    {
        if (n <= 1)
            return 1;
        return n * fact(n - 1);
    }
 
    static int nPr(int n, int r)
    {
        return fact(n) / fact(n - r);
    }
 
    public static void Main()
    {
        int n = 5;
        int r = 2;
 
        Console.WriteLine(n + "P" + r + " = "
                        + nPr(n, r));
    }
}
 
/* This code contributed by PrinciRaj1992 */

PHP




<?php
// PHP program to calculate nPr
function fact($n)
{
    if ($n <= 1)
        return 1;
         
    return $n * fact($n - 1);
}
 
function nPr($n, $r)
{
    return floor(fact($n) /
                 fact($n - $r));
}
     
// Driver code
$n = 5;
$r = 2;
 
echo $n, "P", $r, " = ", nPr($n, $r);
 
// This code is contributed by Ryuga
?>

Javascript




// Javascript program to calculate nPr
function fact(n)
{
    if (n <= 1)
        return 1;
         
    return n * fact(n - 1);
}
 
function nPr(n, r)
{
    return Math.floor(fact(n) /
                fact(n - r));
}
     
// Driver code
let n = 5;
let r = 2;
 
document.write(n, "P", r, " = ", nPr(n, r));
 
// This code is contributed by gfgking
Output: 
5P2 = 20

 

Optimization for multiple queries of nPr 
If there are multiple queries for nPr, we may precompute factorial values and use the same for every call. This would avoid the computation of the same factorial values again and again.
 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :