LCM of factorial and its neighbors - GeeksforGeeks

01 Apr, 2021
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 1Examples :  
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++
Java
Python3
C#
PHP
Javascript
// 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 factorialunsigned 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 codeint main(){    int N = 5;    cout << LCMOfNeighbourFact(N) << "\n";    return 0;}
// 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.*/
# Python3 program to calculate the LCM of N!# and its neighbor (N-1)! and (N+1)! # Function to calculate the factorialdef 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 codeN = 5print(LCMOfNeighbourFact(N)) # This code is contributed by Anant Agarwal.
// Program to calculate the LCM// of N! and its neighbor (N-1)!// and (N+1)!using System; class GFG{// function to calculate the factorialstatic 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 codepublic static void Main(){ int N = 5;   Console.WriteLine(LCMOfNeighbourFact(N));}}  // This code is contributed by Anant Agarwal.
<?php// PHP program to calculate// the LCM of N! and its neighbor// (N-1)! and (N+1)! // function to calculate// the factorialfunction 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.?>
<script>// javascript 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    var N = 5;    document.write(LCMOfNeighbourFact(N)); // This code is contributed by aashish1995</script>
720
 
jit_t
Akanksha_Rai
aashish1995
GCD-LCM
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Program to find sum of elements in a given array
Modulo Operator (%) in C/C++ with Examples
The Knight's tour problem | Backtracking-1
Algorithm to solve Rubik's Cube
Merge two sorted arrays
Find minimum number of coins that make a given value
Operators in C / C++
Prime Numbers
Program for factorial of a number
Minimum number of jumps to reach end