Encuentra los dos últimos dígitos del factorial de un número dado

Dado un número entero N , la tarea es encontrar los dos últimos dígitos del factorial de un número
Ejemplos: 
 

Entrada: N = 7 
Salida: 40 
Explicación: 7! = 5040
Entrada: N = 11 
Salida: 00 
 

Enfoque: Podemos observar que para N >= 10 , los dos últimos lugares de su factorial contendrán solo 0. Por lo tanto N! % 100 para cualquier N >= 10 siempre será 0. Así que solo calculamos el factorial si N < 10 y extraemos los dos dígitos finales. 
A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ implementation to
// find last two digits
// factorial of a given number
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to print the
// last two digits of N!
void lastTwoDigits(long long N)
{
 
    // For N >= 10, N! % 100
    // will always be 0
    if (N >= 10) {
        cout << "00";
        return;
    }
 
    long long fac = 1;
    // Calculating N! % 100
    for (int i = 1; i <= N; i++)
        fac = (fac * i) % 100;
 
    cout << fac;
}
 
// Driver code
int main()
{
    int N = 7;
    lastTwoDigits(N);
}

Java

// Java implementation to
// find last two digits
// factorial of a given number
import java.util.*;
class GFG{
 
// Function to print the
// last two digits of N!
static void lastTwoDigits(double N)
{
 
    // For N >= 10, N! % 100
    // will always be 0
    if (N >= 10)
    {
        System.out.print("00");
        return;
    }
 
    double fac = 1;
     
    // Calculating N! % 100
    for (int i = 1; i <= N; i++)
        fac = (fac * i) % 100;
 
    System.out.print(fac);
}
 
// Driver code
public static void main(String args[])
{
    int N = 7;
    lastTwoDigits(N);
}
}
 
// This code is contributed by Code_Mech

Python3

# Python3 implementation to
# find last two digits
# factorial of a given number
 
# Function to print the
# last two digits of N!
def lastTwoDigits(N):
 
    # For N >= 10, N! % 100
    # will always be 0
    if (N >= 10):
        print("00", end = "")
        return
 
    fac = 1
     
    # Calculating N! % 100
    for i in range(1, N + 1):
        fac = (fac * i) % 100
 
    print(fac)
 
# Driver code
if __name__ == '__main__':
    N = 7
    lastTwoDigits(N)
 
# This code is contributed by Mohit Kumar

C#

// C# implementation to
// find last two digits
// factorial of a given number
using System;
class GFG{
 
// Function to print the
// last two digits of N!
static void lastTwoDigits(double N)
{
 
    // For N >= 10, N! % 100
    // will always be 0
    if (N >= 10)
    {
        Console.Write("00");
        return;
    }
 
    double fac = 1;
     
    // Calculating N! % 100
    for (int i = 1; i <= N; i++)
        fac = (fac * i) % 100;
 
    Console.Write(fac);
}
 
// Driver code
public static void Main()
{
    int N = 7;
    lastTwoDigits(N);
}
}
 
// This code is contributed by Nidhi_biet

Javascript

<script>
 
// JavaScript implementation to
// find last two digits of
// factorial of a given number
 
// Function to print the
// last two digits of N!
function lastTwoDigits(N)
{
 
    // For N >= 10, N! % 100
    // will always be 0
    if (N >= 10) {
        cout << "00";
        return;
    }
 
    let fac = 1;
    // Calculating N! % 100
    for (let i = 1; i <= N; i++)
        fac = (fac * i) % 100;
 
    document.write(fac);
}
 
// Driver code
    let N = 7;
    lastTwoDigits(N);
 
 
// This code is contributed by Surbhi Tyagi.
 
</script>
Producción: 

40

 

Complejidad de tiempo : O (n) desde que se usa un ciclo for

Publicación traducida automáticamente

Artículo escrito por Mayank Rana 1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *