I_R_W14_M33_Java Rozkład liczby na czynniki pierwsze
Implementacja algorytmu w języku Java
Napiszmy program w języku Java, który zrealizuje algorytm rozkładu liczby na czynniki pierwsze. Program będzie rozszerzał kod zaprezentowany w filmie, w sekcji „Film samouczek”. Dodamy funkcję czytelnego wypisania działania, przedstawiając rozkładaną liczbę, symbol równości oraz kolejne dzielniki pierwsze, rozdzielone symbolem gwiazdki (symbol mnożenia).
Tworzymy pustą klasę
Maini metodę startowąmain().
Definiujemy trzy zmienne przechowujące potrzebne dane:
n– przechowuje aktualną wartość rozkładanej liczby (pobieramy ją od użytkownika za pomocą obiektuinputklasyScanner– niezbędne będzie zaimportowaniejava.util.Scanner); typint,k– przechowuje aktualną wartość liczby, przez którą dzielimy rozkładaną liczbę; typint,wynik– przechowuje wartość wynikowego napisu, który zostanie wyświetlony po zakończeniu algorytmu; typString.
Tworzymy pętlę
while, która będzie wykonywana, dopóki wartość rozkładanej liczbynnie wyniesie 1.
Wewnątrz pierwszej pętli
whiledefiniujemy kolejną pętlę, odpowiedzialną za sprawdzenie warunku podzielności. Pętla ta będzie wykonywana, dopóki wartość zmiennejnbędzie podzielna przez aktualną wartość zmiennejk. W wewnętrznej pętli do wynikowego napisu (zmiennawynik) dodajemy wartość zmiennejkoraz nadajemy zmiennejnwartość równą wartości ilorazu zmiennychnorazk.
W ostatnim kroku dodajemy komendę wypisującą otrzymany wynik na ekranie.
W wypadku tego algorytmu do napisu wynikowego dołączany jest na końcu operator mnożenia – ponieważ nie wygląda to dobrze, usuniemy go.
Użyjemy do tego klasy StringBuilder, która umożliwia wygodne modyfikowanie danego napisu. Za pomocą metody deleteCharAt() pozbywamy się znaku mnożenia, a metodą trim() usuwamy wszelkie niepotrzebne spacje znajdujące się na końcu napisu.
Klasę StringBuilder poznasz podczas omawiania operacji na łańcuchach znaków w języku Java.
Załóżmy, że wartością podaną przez użytkownika jest liczba całkowita 63.
Wynikiem tego algorytmu, przy podanej wartości, jest napis:
Słownik
liczba naturalna większa od 1, mająca tylko dwa dzielniki: 1 oraz samą siebie (przykładowo: 2, 3, 5, 7, 11)