package examenes.examen20241025;


import static examenes.examen20241025.utils.Utils.*;

public class Ejercicio_b {
    public static void main(String[] args) {
        //Solicito un número
        int numPositivo = solicitarIntScanner("Introduzca un número para comprobar si se puede expresar con 3^n");

        //Creo variables que voy a necesitar
        int resultadoAnterior = 0;
        boolean encontrado = false;
        String resultadoPosible = "";
        //En un bucle voy comprobando
        for (int i = 1; true; i++) {

            //Si cuadra la suma marcamos que lo hemos encontrado y salimos del bucle
            if (resultadoAnterior == numPositivo) {
                //Generamos el texto para representar la suma
                for (int j = 0; j < i; j++) {
                    resultadoPosible += "3^" + (j + 1);
                    if (j != i - 1) {
                        resultadoPosible += " + ";
                    }
                }
                encontrado = true;
                break;

                //Si no hemos llegado sumamos el siguiente 3^n
            } else if (resultadoAnterior < numPositivo) {
                resultadoAnterior += (int) Math.pow(3, i);

                //Si nos hemos pasado nos salimos del bucle
            } else {
                break;
            }
        }

        //Si hemos encontrado el resultado lo decimos y lo mostramos y si no lo hemos encontrado lo decimos
        if (encontrado) {
            System.out.println("Se ha encontrado este resultado: ");
            System.out.println(resultadoPosible);
        } else {
            System.out.println("No se puede expresar de esa forma");
        }


    }
}