Skip to content

Latest commit

 

History

History
65 lines (41 loc) · 2.21 KB

File metadata and controls

65 lines (41 loc) · 2.21 KB

Programming-course-cpp

Jakub Piskorowski on 30/08/2023 wersja: 1.0

Temat: Rozkład liczby na czynniki pierwsze

Przedstawienie działania algorytmu rozkładu liczb na czynniki pierwsze.

Kod źródłowy:

📒 Poziom 2

Powrót do Algorytmika


Objaśnienie

Zacznijmy od definicji. Rozkład liczby naturalnej n>1 na czynniki pierwsze polega na przedstawieniu jej w postaci iloczynu liczb pierwszych.

Liczby złożone będą miały co najmniej dwa czynniki pierwsze. Liczby pierwsze się nie rozkładają. Problem rozwiążemy sposobem szkolnym. Popatrzmy najpierw na kilka przykładów. Rozłóżmy liczby 24, 100, 1520:

24 = 2 * 2 * 2 * 3
100 = 2 * 2 * 5 * 5
1520 = 2 * 2 * 2 * 2 * 5 * 19

Liczbę do rozłożenia będziemy dzielić przez liczby pierwsze tak długo, aż z liczby rozkładanej zrobi się 1.

Rozkład liczb

Rozpoczynamy od dwójki - jest to pierwsza liczba pierwsza. Jeśli rozkładana liczba dzieli się bez reszty przez 2, to wypisujemy 2 i skracamy ją przez 2. Czynność powtarzamy tak długo, jak długo liczba dana liczba jest podzielna przez 2. W drugim kroku szukamy następnego dzielnika rozkładanej liczby. Będzie to następna liczba pierwsza. Czynności te powtarzamy do momentu uzyskania wartości 1.

Zakładamy, że liczba, która znajdzie się na wejściu będzie większa od jedynki.


Algorytm rozkładu liczb na czynniki pierwsze

Wejście:
n – liczba naturalna podana przez użytkownika
k - liczby pierwsze

Lista kroków:
K1:   k ← 2   Ustawiamy k na pierwszą liczbę pierwszą
K2:   dopóki n > 1   rozkład liczby na czynniki pierwsze
      wykonuj kroki k3...k6
K3:   dopóki n modulo k = 0   dopóki liczba jest podzielna przez k
      wykonuj kroki K4...K5
K4:   wyświetl k
K5:   n ← n / k
k6:   k ← k + 1

Wynik działania programu:

Podaj liczbe: 1520
Czynniki pierwsze liczby 1520: 2 2 2 2 5 19

Kod źródłowy: rozklad-liczby.cpp