Rozwiązanie
import javax.swing.*; public class Liczba { int a; public Liczba(int liczba) { // konstruktor a = liczba; } public int getValue() { // zwraca wartość liczby return a; } public double pow(int n) { // metoda potęgowania if (n < 0) { // warunek konieczny: n >=0 System.out.println("Niedopuszczalna wartość wykładnika"); return -0.1; } double wynik = 1; while(n-- > 0) wynik *= a; // pętla potęgowania return wynik; } // Do jakiej parzystej nieujemnej potgi // należy podnieść liczbę, by uzyskać targetVal public int evenExponentFor(int targetVal) { int w = 1; int n = 0; if (targetVal > 1 && a >= -1 && a <= 1) { System.out.println("Wadliwe dane"); return -1; } while (w < targetVal) { n+=2; w *= a*a; System.out.println(n + " " + w); } return n; } public static void main(String[] args) { Liczba a; // refrencja do obiektów - liczb String in1; // napis oznaczający wprowadzoną liczbę JOptionPane.showMessageDialog(null, "Podnoszenie do potęgi"); // pętla wprowadzania danych będzie działać dopóki nie // zamkniemy któregoś z okienek dialogowych while ((in1 = JOptionPane.showInputDialog("Podaj a")) != null) { a = new Liczba( Integer.parseInt(in1) ); // tworzymy obiekt // napis -> int // int argumentem konstruktora // pobieramy wykładnik String in2 = JOptionPane.showInputDialog("Podaj n"); if (in2 == null) break; // jeżeli przerwano dialog - wyjście z pętli int n = Integer.parseInt(in2); // napis -> int // uzyskanie wyniku za pomocą wywołanie metody pow double wynik = a.pow(n); System.out.println(a.getValue() + " do potegi " + n + " = " + wynik); } JOptionPane.showMessageDialog(null, "Poszukiwanie parzystego wykładnika"); while ((in1 = JOptionPane.showInputDialog("Podaj a")) != null) { a = new Liczba( Integer.parseInt(in1) ); // pobieramy wartość docelową String in2 = JOptionPane.showInputDialog("Podaj cel"); if (in2 == null) break; int cel = Integer.parseInt(in2); // uzyskanie wyniku za pomocą wywołanie metody evenExponent int n = a.evenExponentFor(cel); System.out.println("Aby uzyskać co najmniej " + cel + " liczbę " + a.getValue() + " trzeba podnieść do parzystej potęgi " + n); System.out.println(a.getValue() + " do potegi " + n + " = " + a.pow(n)); } System.out.println("Koniec programu"); System.exit(1); } }