LCM of factorial and its neighbors

Given a number, we need to find LCM of the factorial of the numbers and its neighbors. If the number is N, we need to find LCM of (N-1)!, N! and (N+1)!.Here N is always greater than or equal too 1

Examples :

Input : N = 5  
Output : 720
Explanation
Here the given number is 5, its neighbors 
are 4 and 6. The factorial of these three 
numbers are 24, 120, and 720.so the LCM
of 24, 120, 720 is 720.
 
Input : N = 3  
Output : 24
Explanation
Here the given number is 3, its Neighbors
are 2 and 4.the factorial of these three 
numbers are 2, 6, and 24. So the LCM of 
2, 6 and 24 is 24.

Method 1(Simple). We first calculate the factorial of number and and the factorial of its neighbor then
find the LCM of these factorials numbers.



Method 2(Efficient)
We can see that the LCM of (N-1)!, N! and (N+1)! is always (N-1)! * N! * (N+1)!
this can be written as (N-1)! * N*(N-1)! * (N+1)*N*(N-1)!
so the LCM become (N-1)! * N * (N+1)
which is (N+1)!

Example
N = 5
We need to find the LCM of 4!, 5!and 6!
LCM of 4!, 5!and 6!
= 4! * 5! * 6!
= 4! * 5*4! * 6*5*4!
= 6*5*4!
= 720
So we can say that LCM of the factorial of three consecutive numbers is always the factorial of the largest number.in this case (N+1)!.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to calculate the LCM of N! 
// and its neighbor (N-1)! and (N+1)!
#include <bits/stdc++.h>
using namespace std;
  
// function to calculate the factorial
unsigned int factorial(unsigned int n)
{
    if (n == 0)
        return 1;
    return n * factorial(n - 1);
}
  
int LCMOfNeighbourFact(int n)
{
    // returning the factorial of the 
    // largest number in the given three 
    // consecutive numbers
    return factorial(n + 1);
}
  
// Driver code
int main()
{
    int N = 5;
    cout << LCMOfNeighbourFact(N) << "\n";
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to calculate the LCM of N!
// and its neighbor (N-1)! and (N+1)!
import java.io.*;
  
class GFG {
  
    // function to calculate the factorial
    static int factorial(int n)
    {
        if (n == 0)
            return 1;
              
        return n * factorial(n - 1);
    }
  
    static int LCMOfNeighbourFact(int n)
    {
          
        // returning the factorial of the
        // largest number in the given three
        // consecutive numbers
        return factorial(n + 1);
    }
  
    // Driver code
    public static void main(String args[])
    {
        int N = 5;
          
        System.out.println(LCMOfNeighbourFact(N));
    }
}
  
/*This code is contributed by Nikita Tiwari.*/

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program to calculate the LCM of N! 
# and its neighbor (N-1)! and (N+1)!
  
# Function to calculate the factorial
def factorial(n):
    if (n == 0):
        return 1
    return n * factorial(n - 1)
  
def LCMOfNeighbourFact(n):
  
    # returning the factorial of the 
    # largest number in the given three 
    # consecutive numbers
    return factorial(n + 1)
  
# Driver code
N = 5
print(LCMOfNeighbourFact(N))
  
# This code is contributed by Anant Agarwal.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// Program to calculate the LCM
// of N! and its neighbor (N-1)!
// and (N+1)!
using System;
  
class GFG
{
// function to calculate the factorial
static int factorial(int n) {
      
    if (n == 0)
        return 1;
    return n * factorial(n - 1);
}
   
static int LCMOfNeighbourFact(int n) {
  
    // returning the factorial of the 
    // largest number in the given three 
    // consecutive numbers
    return factorial(n + 1);
}
  
// Driver code
public static void Main() 
{
 int N = 5;
   
 Console.WriteLine(LCMOfNeighbourFact(N));
}
}
   
// This code is contributed by Anant Agarwal.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to calculate 
// the LCM of N! and its neighbor 
// (N-1)! and (N+1)!
  
// function to calculate 
// the factorial
function factorial($n)
{
    if ($n == 0)
        return 1;
    return $n * factorial($n - 1);
}
  
function LCMOfNeighbourFact($n)
{
    // returning the factorial
    // of the largest number in
    // the given three
    // consecutive numbers
    return factorial($n + 1);
}
  
// Driver code
$N = 5;
echo(LCMOfNeighbourFact($N));
  
// This code is contributed by Ajit.
?>

chevron_right


Output:

720


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. 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.



Improved By : jit_t, Akanksha_Rai



Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.