Dado un número N de cinco dígitos, la tarea es encontrar los últimos cinco dígitos del número dado elevado a la potencia de 5 después de modificarlo ordenando los dígitos como:
first digit, third digit, fifth digit, fourth digit, second digit.
Ejemplos:
Input : N = 12345 Output : 71232 Explanation : After modification the number becomes 13542. (13542)5 is 455422043125550171232 Input : N = 10000 Output : 00000
Enfoque : en este problema, solo se requiere la implementación de las acciones descritas en el enunciado. Sin embargo, hay dos trampas en este problema.
El primer problema es que la quinta potencia de un número de cinco dígitos no se puede representar con un número entero de 64 bits. Pero en realidad no necesitamos la quinta potencia, necesitamos la quinta potencia módulo 10 5 . Y la operación mod se puede aplicar después de cada multiplicación.
El segundo problema es que necesita generar cinco dígitos, no el quinto módulo de potencia 10 5 . La diferencia es cuando el quinto dígito desde el final es cero. Para generar un número con el cero inicial, uno puede usar el formato correspondiente (% 05d en printf) o extraer dígitos y generarlos uno por uno.
A continuación se muestra la implementación del enfoque anterior:
C++
// CPP program to find last five digits // of a five digit number raised to power five #include <bits/stdc++.h> using namespace std; // Function to find the last five digits // of a five digit number raised to power five int lastFiveDigits(int n) { n = (n / 10000) * 10000 + ((n / 100) % 10) * 1000 + (n % 10) * 100 + ((n / 10) % 10) * 10 + (n / 1000) % 10; int ans = 1; for (int i = 0; i < 5; i++) { ans *= n; ans %= 100000; } printf("%05d", ans); } // Driver code int main() { int n = 12345; lastFiveDigits(n); return 0; }
Java
// Java program to find last five digits // of a five digit number raised to power five class GfG { // Function to find the last five digits // of a five digit number raised to power five static void lastFiveDigits(int n) { n = (n / 10000) * 10000 + ((n / 100) % 10) * 1000 + (n % 10) * 100 + ((n / 10) % 10) * 10 + (n / 1000) % 10; int ans = 1; for (int i = 0; i < 5; i++) { ans *= n; ans %= 100000; } System.out.println(ans); } // Driver code public static void main(String[] args) { int n = 12345; lastFiveDigits(n); } }
Python3
# Python3 program to find last five digits # of a five digit number raised to power five # Function to find the last five digits # of a five digit number raised to power five def lastFiveDigits(n): n = ((int)(n / 10000) * 10000 + ((int)(n / 100) % 10) * 1000 + (n % 10) * 100 + ((int)(n / 10) % 10) * 10 + (int)(n / 1000) % 10) ans = 1 for i in range(5): ans *= n ans %= 100000 print(ans) # Driver code if __name__ == '__main__': n = 12345 lastFiveDigits(n) # This code contributed by PrinciRaj1992
C#
// C# program to find last five // digits of a five digit number // raised to power five using System; class GFG { // Function to find the last // five digits of a five digit // number raised to power five public static void lastFiveDigits(int n) { n = (n / 10000) * 10000 + ((n / 100) % 10) * 1000 + (n % 10) * 100 + ((n / 10) % 10) * 10 + (n / 1000) % 10; int ans = 1; for (int i = 0; i < 5; i++) { ans *= n; ans %= 100000; } Console.WriteLine(ans); } // Driver code public static void Main(string[] args) { int n = 12345; lastFiveDigits(n); } } // This code is contributed // by Shrikant13
PHP
<?php // PHP program to find last five digits // of a five digit number raised to power five // Function to find the last five digits // of a five digit number raised to power five function lastFiveDigits($n) { $n = (int)($n / 10000) * 10000 + ((int)($n / 100) % 10) * 1000 + ($n % 10) * 100 + ((int)($n / 10) % 10) * 10 + (int)($n / 1000) % 10; $ans = 1; for ($i = 0; $i < 5; $i++) { $ans *= $n; $ans %= 100000; } echo $ans; } // Driver code $n = 12345; lastFiveDigits($n); // This code is contributed // by Akanksha Rai ?>
Javascript
<script> // JavaScript program to find last five digits // of a five digit number raised to power five // Function to find the last five digits // of a five digit number raised to power five function lastFiveDigits(n) { n = (Math.floor(n / 10000)) * 10000 + (Math.floor(n / 100) % 10) * 1000 + (n % 10) * 100 + (Math.floor(n / 10) % 10) * 10 + Math.floor(n / 1000) % 10; let ans = 1; for (let i = 0; i < 5; i++) { ans *= n; ans %= 100000; } document.write(ans); } // Driver code let n = 12345; lastFiveDigits(n); // This code is contributed by Manoj. </script>
71232
Complejidad temporal : O(1)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por pawan_asipu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA