Dados dos números positivos N y X , la tarea es verificar si el número dado N se puede expresar como la suma de distintas potencias de X . Si es cierto, escriba «Sí» , de lo contrario, escriba «No» .
Ejemplos:
Entrada: N = 10, X = 3
Salida : Sí
Explicación:
El valor dado de N(= 10) se puede escribir como (1 + 9) = 3 0 + 3 2 . Ya que todas las potencias de X(= 3) son distintas. Por lo tanto, imprima Sí.Entrada: N= 12, X = 4
Salida: No
Planteamiento: El problema dado se puede resolver comprobando si el número N se puede escribir en base X o no. Siga los pasos a continuación para resolver el problema:
- Iterar un bucle hasta que el valor de N sea al menos 0 y realizar los siguientes pasos:
- Calcula el valor del resto rem cuando N se divide por X .
- Si el valor de rem es al menos 2 , imprima «No» y regrese.
- De lo contrario, actualice el valor de N como N / X .
- Después de completar los pasos anteriores, si no existe ninguna terminación, imprima «Sí» , ya que el resultado en N se puede expresar en la potencia distinta de X.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if the number N // can be expressed as the sum of // different powers of X or not bool ToCheckPowerofX(int n, int x) { // While n is a positive number while (n > 0) { // Find the remainder int rem = n % x; // If rem is at least 2, then // representation is impossible if (rem >= 2) { return false; } // Divide the value of N by x n = n / x; } return true; } // Driver Code int main() { int N = 10, X = 3; if (ToCheckPowerofX(N, X)) { cout << "Yes"; } else { cout << "No"; } return 0; }
Java
// Java program for the above approach import java.io.*; import java.util.*; class GFG{ // Function to check if the number N // can be expressed as the sum of // different powers of X or not static boolean ToCheckPowerofX(int n, int x) { // While n is a positive number while (n > 0) { // Find the remainder int rem = n % x; // If rem is at least 2, then // representation is impossible if (rem >= 2) { return false; } // Divide the value of N by x n = n / x; } return true; } // Driver Code public static void main (String[] args) { int N = 10, X = 3; if (ToCheckPowerofX(N, X)) { System.out.print("Yes"); } else { System.out.print("No"); } } } // This code is contributed by sanjoy_62
Python3
# Python3 program for the above approach # Function to check if the number N # can be expressed as the sum of # different powers of X or not def ToCheckPowerofX(n, x): # While n is a positive number while (n > 0): # Find the remainder rem = n % x # If rem is at least 2, then # representation is impossible if (rem >= 2): return False # Divide the value of N by x n = n // x return True # Driver Code if __name__ == '__main__': N = 10 X = 3 if (ToCheckPowerofX(N, X)): print("Yes") else: print("No") # This code is contributed by bgangwar59
C#
// C# program for the above approach using System; class GFG{ // Function to check if the number N // can be expressed as the sum of // different powers of X or not static bool ToCheckPowerofX(int n, int x) { // While n is a positive number while (n > 0) { // Find the remainder int rem = n % x; // If rem is at least 2, then // representation is impossible if (rem >= 2) { return false; } // Divide the value of N by x n = n / x; } return true; } // Driver code public static void Main(String []args) { int N = 10, X = 3; if (ToCheckPowerofX(N, X)) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by code_hunt,
Javascript
<script> // JavaScripts program for the above approach // Function to check if the number N // can be expressed as the sum of // different powers of X or not function ToCheckPowerofX(n, x) { // While n is a positive number while (n > 0) { // Find the remainder var rem = n % x; // If rem is at least 2, then // representation is impossible if (rem >= 2) { return false; } // Divide the value of N by x n = n / x; } return true; } // Driver Code var N = 10, X = 3; if (ToCheckPowerofX(N, X)) { document.write("Yes"); } else { document.write("No"); } </script>
Producción:
Yes
Complejidad temporal: O(log N)
Espacio auxiliar: O(1)