Program to calculate the value of nPr

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)!



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));



Optimization for multiple queries of nPr

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

If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the “Improve Article” button below.

Article Tags :

Be the First to upvote.

Please write to us at to report any issue with the above content.

Source link