RxDI3A1JRWzCA
Zdjęcie przedstawia rozsypany stos wyciętych cyfr.

I_P_W14_M03_Java Liczby pierwsze w języku Java

Źródło: geralt, domena publiczna.

Liczby stanowią jeden z najstarszych i najbardziej wszechstronnych obszarów, w których wykorzystuje się algorytmy. W tym rozdziale poznasz sposoby rozwiązywania problemów matematycznych za pomocą języka Java — zarówno tych spotykanych na co dzień, jak i tych związanych z bardziej zaawansowanymi zagadnieniami informatyki. 

W materiale omówimy między innymi: sprawdzanie, czy dana liczba jest pierwsza, obliczanie największego wspólnego dzielnika (NWD) i najmniejszej wspólnej wielokrotności (NWW) oraz analizę liczb doskonałych i zaprzyjaźnionych. Każdy algorytm zostanie zaprezentowany krok po kroku — wraz z omówieniem jego działania oraz przykładową implementacją w języku Java. 

Dzięki temu nauczysz się nie tylko tworzyć poprawny kod, ale także rozumieć jego logikę i praktyczne zastosowanie. Rozdział ten pomoże ci rozwinąć umiejętność myślenia algorytmicznego — jedną z najważniejszych cech dobrego programisty.

RUVKBJKQAG1OV
Ćwiczenie 1
Jaki jest największy wspólny dzielnik liczb 38 oraz 8? Możliwe odpowiedzi: 1. 2, 2. 4, 3. 8, 4. 1
2
Ćwiczenie 2
Rj8K3bJQii3aM
Jaki warunek steruje pętlą while w pierwszej wersji algorytmu Euklidesa (wariant z odejmowaniem)? Możliwe odpowiedzi: 1. a != b, 2. b != 0, 3. a == b, 4. b < 0
Ciekawostka

Czy wiesz, że algorytmy oparte na liczbach pierwszych są fundamentem bezpieczeństwa w internecie? Wiele systemów szyfrowania, takich jak RSA, wykorzystuje fakt, że bardzo trudno jest rozłożyć dużą liczbę na czynniki pierwsze. Choć sprawdzenie, czy liczba jest pierwsza, jest stosunkowo proste, to odwrotna operacja — faktoryzacja — staje się ekstremalnie trudna dla bardzo dużych liczb. To właśnie ta „trudność” chroni twoje dane podczas zakupów online, logowania do banku czy wysyłania wiadomości.

Twoje cele
  • Zastosujesz w praktyce wiedzę dotyczącą algorytmów liczbowych.

  • Prześledzisz przykładowe algorytmy liczbowe zapisane w języku Java.

  • Przeanalizujesz, napisaną w języku Java, implementację algorytmu służącego do sprawdzania, czy liczby są pierwsze, zaprzyjaźnione, doskonałe czy bliźniacze.

  • Wykonasz kilka ćwiczeń związanych z algorytmami liczbowymi.