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